日期:2014-05-16  浏览次数:20632 次

请问:对于目标文件的编译中,有a.h, b.h, c.h, a.cpp, b.cpp, c.cpp中,a.h中include 了b.h, c.h
, a.cpp中调用了b.cpp, c.cpp中的函数

那么想生成a.o

g++ -o a.o a.cpp
这样的命令方式行不行啊,
还是要用
g++ -o a.o a.cpp b.cpp c.cpp啊

------解决方案--------------------
-o通常是链接用的, 你编译不用-o.

这样就生成a.o了:
g++ -c a.cpp

至于用了哪了里面的函数, 你只要#include就行了, 编译期是不管这个的, 只记录一个函数名(symbol).

链接的时候要:
g++ -o test a.o b.o c.o
因为这个时候要链接函数名对应的地址了.