假设我有一个源文件,比如helper.c
,它被编译成一个对象库(helper.a
)。现在,这使用了许多系统库的功能,所以当前我想将helper.a
链接到可执行文件时,我最终必须列出所有依赖项:
gcc main.c helper.a -o my_app -lrt -lpthreads ...
避免这种乏味和维护问题的常用方法是什么?有没有办法将有关依赖关系的信息嵌入到库中,以便GCC可以在链接时找到它们?或者是否必须将依赖库静态链接到helper.a
?
答案 0 :(得分:1)
某些编译器可以生成一个文本文件,其中包含正在编译的文件的所有依赖项。检查编译器的文档。
将此文本文件包含在 makefile 中以解决依赖关系。