简而言之,问题是我有一些对象文件(比如a.o
、b.o
(和一些源文件(f.c
和g.c
(我必须在一个步骤中编译和链接。
这就是我正在做的,但我不认为这是至少我应该给出-l
或-L
之类的链接的写入方式
gcc -Wall -O0 -ggdb -fPIC a.o b.o f.c g.c -o executable
这是正确的方式,-l
用于链接到库(例如,ptheads库需要-lpthread
(,-L
用于将目录添加到链接器查找库文件的目录中。
以这种方式编译软件没有错。大多数生成系统一次生成一个文件,以避免在源文件未修改且对象文件仍然存在的情况下重新生成对象文件。如果您能够很好地重建代码,那么您的方法是完全有效的。