【发布时间】:2014-07-10 21:27:44
【问题描述】:
由于其他要求,我必须按以下顺序编译这些文件:首先是 a,然后是 b。
现在文件的格式如下: 呵呵
void caller_func(void);
交流
#include "a.h" #include "b.h" void caller_func(void){ called_func(void); }
b.h
void called_func(void);
b.c
#include "b.h" void called_func(void){ //any action }
在编译时我得到 a.so: 未定义对 'called_function' 的引用
有没有办法解决这个问题(除了改变编译顺序)?
【问题讨论】:
-
如何调用编译器?可能是编译器不仅尝试编译而且还链接a?
-
如果你将
a.c编译成a.o和b.c编译成b.o,那么你必须将a.o和b.o链接在一起。或者你可以一起编译:cc -o output a.c b.c
标签: c compilation