小弟现在遇到个问题,如下:
主程序为 main.c ,调用函数A、B,A再调用函数C,那么makefile文件改如何写呢?
我写的是
out : main.o A.o B.o C.o
gcc -o out main.o A.o B.o C.o
..c.o:
gcc -c $<
不知道这样对不对?
然后遇到的问题是:在main和A、B、C中都调用了头文件“complex.h”,这个是自己编写的复数运算头文件~
运行make后显示的结果是:
A.o : In function 'getAcomplex' :
A.c : (.text + 0x0) : multip definition of 'getAcomplex' // getAcomplex 是complex.h中的一个函数
main.o : main.c : (.text + 0x0) : first defined here.
.....
.....
collect 2 : ld 返回 1
make : *** [out] 错误 1.
按照我的理解他说的是函数getAcomplex重复定义了,但是如果删掉main或者A中的#include 'complex.h', 那么main或者A就无法编译成功
希望达人告诉我这个问题该这么解决~
piaoyun1979 于 2010-03-15 22:23:57发表:
把'complex.h这个放上来看看