自己编写了一个Makefile 出现问题了
simple:isblank_1.oisalnum_1.ogetpagesize_1.ogcc-osimpleisblank_1.oisalnum_1.ogetpages...
simple:isblank_1.o isalnum_1.o getpagesize_1.o
gcc -o simple isblank_1.o isalnum_1.o getpagesize_1.o
isblank_1.o:isblank_1.c
gcc -o isblank_1.o isblank_1.c
isalnum_1.o:isalnum_1.c
gcc -o isalnum_1.o isalnum_1.c
getpagesize_1.o:getpagesize_1.c
gcc -o getpagesize_1.o getpagesize_1.c
desktop:~/make_1$ make
make后出现下面这个问题 怎么解决啊???
gcc -o isblank_1.o isblank_1.c
gcc -o isalnum_1.o isalnum_1.c
gcc -o getpagesize_1.o getpagesize_1.c
gcc -o simple isblank_1.o isalnum_1.o getpagesize_1.o
isblank_1.o: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.text+0x0): first defined here
isblank_1.o:(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata+0x0): first defined here
isblank_1.o: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crti.o:(.fini+0x0): first defined here
isalnum_1.o: In function `main':make: *** [simple] Error 1 展开
gcc -o simple isblank_1.o isalnum_1.o getpagesize_1.o
isblank_1.o:isblank_1.c
gcc -o isblank_1.o isblank_1.c
isalnum_1.o:isalnum_1.c
gcc -o isalnum_1.o isalnum_1.c
getpagesize_1.o:getpagesize_1.c
gcc -o getpagesize_1.o getpagesize_1.c
desktop:~/make_1$ make
make后出现下面这个问题 怎么解决啊???
gcc -o isblank_1.o isblank_1.c
gcc -o isalnum_1.o isalnum_1.c
gcc -o getpagesize_1.o getpagesize_1.c
gcc -o simple isblank_1.o isalnum_1.o getpagesize_1.o
isblank_1.o: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.text+0x0): first defined here
isblank_1.o:(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata+0x0): first defined here
isblank_1.o: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crti.o:(.fini+0x0): first defined here
isalnum_1.o: In function `main':make: *** [simple] Error 1 展开
1个回答
展开全部
我看错误是说
isblank_1.c,定义了一个_start函数,这个是elf可执行格式的入口
您不应该定义这样名字的函数。
另外_fp_hw,_fini都是如此。
isblank_1.c,定义了一个_start函数,这个是elf可执行格式的入口
您不应该定义这样名字的函数。
另外_fp_hw,_fini都是如此。
更多追问追答
追问
这是 isblank.c的原型:
#include
main()
{
char str[]="123 abc";
int i;
int count=0;
for(i=0;str[i]!=0;i++)
{
if(isblank(str[i]))
{
count++;
printf("%d\n",i);
}
}
printf("the count is[%d]\n",count);
}
追答
我明白了,问题出现在gcc -o simple isblank_1.o的-o选项
你不应该用-o选项,这个是会生成可执行文件,而不是obj,应该用-c选项
你把三个文件都编译成可执行文件,再把他们链接到一起,当然出问题了。
另外再说一句,这三个文件里,只能一个文件有main函数。
simple:isblank_1.o isalnum_1.o getpagesize_1.o
gcc -c simple isblank_1.o isalnum_1.o getpagesize_1.o -o myProgram
isblank_1.o:isblank_1.c
gcc -c isblank_1.c
isalnum_1.o:isalnum_1.c
gcc -c isalnum_1.c
getpagesize_1.o:getpagesize_1.c
gcc -c getpagesize_1.c
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询