我需要包含静态库中的所有符号。使用Xcode编译时,“-force_load”很好。但是,例如,在使用gcc的Ubuntu下使用它时,“-force_load”无法识别。我正在寻找可以在其他操作系统下使用的替代选项。感谢。
答案 0 :(得分:1)
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