首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux C 的编译,链接有关问题

2012-02-25 
linux C 的编译,链接问题我写了两段简单的不能再简单的代码,可是还是出了错代码1,add.c,extern int num[]

linux C 的编译,链接问题
我写了两段简单的不能再简单的代码,可是还是出了错
代码1,add.c,
extern int num[];
int b=2;
int add(void)
{
int a;
a=num[0];
return a+b;
}
代码2 main.c ,
#include<stdio.h>
extern int add(void);
int num[2]={1,2};
int main()
{
  int c;
 c=add();
printf("%d",c);
return 0;
}
然后编译,gcc -c add.c main.c 没有问题,然后链接,ld add.o main.o -o app,出问题了,
报错“ld: warning: cannot find entry symbol _start; defaulting to 0000000008048094
main.o: In function `main':
main.c:(.text+0x23): undefined reference to `printf”
我不知道问题在哪里,
然后,我直接执行这个命令gcc add.c main.c -o app, 这时它又生成了可执行文件app。。。。而且可以正确执行!!
请问这是怎么回事????


[解决办法]

探讨
我写了两段简单的不能再简单的代码,可是还是出了错
代码1,add.c,
extern int num[];
int b=2;
int add(void)
{
int a;
a=num[0];
return a+b;
}
代码2 main.c ,
#include<stdio.h>
extern int add(void);
int num[2]={1,2};
int m……

热点排行