【发布时间】:2010-05-11 15:39:55
【问题描述】:
我有一个包含一些自制函数的共享库,我将其编译到我的其他程序中,但我必须将最终程序与我用来编译静态库的所有库链接起来。这是一个例子:
我在库中有函数 foo,它需要来自另一个库 libbar.so 的函数。
在我的主程序中使用函数foo 我必须用-lbar 标志编译它。有没有一种方法可以静态编译 my 库,使其包含来自其他库的所有必需代码,并且我可以在不需要 -lbar 标志的情况下编译我的最终程序?
【问题讨论】:
-
您能否明确说明正在使用的平台?理想情况下,它们会在标签中。
-
旁注;您不仅不必使用 -lbar,而且一旦开始,您的链接器将删除所有 your 代码未引用的符号(直接或间接通过您的调用链)。这将缩小您的可执行文件并帮助您的应用更快地启动!
标签: c++ c static linker shared-libraries