【发布时间】:2014-07-30 14:07:06
【问题描述】:
我需要包含静态库中的所有符号。使用 Xcode 编译时,“-force_load”很好。但是,例如,在带有 gcc 的 Ubuntu 下使用它时,无法识别“-force_load”。我正在寻找可以在其他操作系统下使用的替代选项。谢谢。
【问题讨论】:
我需要包含静态库中的所有符号。使用 Xcode 编译时,“-force_load”很好。但是,例如,在带有 gcc 的 Ubuntu 下使用它时,无法识别“-force_load”。我正在寻找可以在其他操作系统下使用的替代选项。谢谢。
【问题讨论】:
GNU 链接器的选项称为--whole-archive,但-force_load 适用于一个库,--whole-archive 适用于命令行上它之后的所有库。所以通常的做法是--whole-archive somelib.a --no-whole-archive。
通常您不直接使用 ld 而是通过 GCC 调用它,在这种情况下您必须告诉 GCC 将选项传递给链接器:-Wl,--whole-archive,somelib.a,--no-whole-archive
【讨论】: