绕过gcc中的静态链接顺序问题

时间:2015-01-22 18:33:41

标签: c++ c gcc

静态链接顺序对于GCC非常重要,并且对于许多广泛使用的库(包括libgdlibarchive,MySql Connector C)创建静态版本会产生很多问题。等等。通常包括configure脚本假设我们使用共享库,即使我们设置了静态构建,它仍然会忽略这个事实,并以错误的顺序放置静态库,因此它花费时间来查找错误并编辑{ {1}}手动。

另一方面,竞争对手编译器可以按任何顺序构建静态库,例如,Microsoft Visual C ++没有这个问题,因此看起来必须是一种解决此问题的方法。

有没有办法强制gcc自动命令静态库,就像Visual C ++一样?

1 个答案:

答案 0 :(得分:2)

在链接期间使用标记-Wl,--start-group-Wl,--end-group包装库列表。

这些标志确保在所有提到的库中查找所有未解析的符号(与顺序无关)。