新手求解

huajianhun 2012-06-01 05:05:21
有3个.c文件盒一个.h文件。

A.c:
#include <stdio>

int a(int n){
int m=n+1;
return m;
}

B.c:
#include <stdio.h>

int b(int n){
int m=n-1;
return m;
}

D.h:
extern int a(int n);
extern int b(int n);

C.c:
#include <stdio.h>
//#include "D.h"
extern int a(int n);
extern int b(int n);
int main(){
//extern int a(int n);
//extern int b(int n);
int n=9,m=0;
int x=0,y=0;
x=a(n);
y=b(n);
m=x+y;
printf("%d\n",m);
return 0;
}
在linux下使用GCC编译:gcc -o c C.c,然后报错,说找不到外部方法,报错信息如下:
/tmp/cctTsW7G.o: In function `main':
C.c:(.text+0x31): undefined reference to `a'
C.c:(.text+0x41): undefined reference to `b'

我试过把申明写在 main()里面和外面,都报这个错。
请大神详解,解的精彩,给全分。
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-06-01
  • 打赏
  • 举报
回复
gcc -o C.o -c C.c -I.
gcc -o A.o -c A.c
gcc -o B.o -c B.c
gcc -o main A.o B.o C.o
sundayX 2012-06-01
  • 打赏
  • 举报
回复
去掉extern。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧