【发布时间】:2016-09-27 17:15:49
【问题描述】:
假设我有一个动态库 (.so)。
如果我使用 --start-group --end-group 链接到它会发生什么?
是否将其视为存档,以便所有必要的符号都“物理地”包含在我的输出库中?
还是仍将其视为动态库(相当于使用 -l 选项)?
看了documentation,可能会以为是存档,其实也有说it is not possible to statically link to a shared library。
【问题讨论】:
-
您引用的文档以“archives 应该是归档文件列表”开头,其中“archives”指定
--start-group和--end-group之间的参数。从这个意义上说,共享库或对应于一个的-l参数不是存档文件。文档没有说如此指定的文件将被视为存档文件;他们说您有责任在此处指定(仅)存档文件。 -
@JohnBollinger 如果有一个动态库会发生什么,这仍然是未知数。
-
是的,因为该案例没有记录或预期的行为,所以没有可靠的答案,除了可能“试试看”。但是,在任何情况下都不能将共享库有效地视为存档文件。
标签: c gcc linker static-linking dynamic-linking