绕过 gcc 中的静态链接顺序问题
Bypass static linking order problems in gcc
静态链接顺序对GCC
很重要,它给很多广泛使用的库创建静态版本带来了很多问题,包括libgd
、libarchive
、MySql Connector C等。 通常包含在脚本configure
假设我们使用共享库,即使我们设置了静态构建,它仍然忽略了这一事实,并以错误的顺序放置静态库, 因此,查找错误并手动编辑makefile
会花费时间。
另一方面,竞争对手的编译器可以按任何顺序构建静态库,例如,Microsoft Visual C++没有这个问题,所以看起来一定是解决这个问题的一种方法。
有没有办法强制 gcc 像 Visual C++ 一样自动订购静态库?
在
链接期间用-Wl,--start-group
和-Wl,--end-group
标志包装库列表。
这些标志确保在所有提到的库中查找所有未解析的符号(与顺序无关)。
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 链接库时的默认目录上的GCC或G 路径搜索顺序
- 编写链接函数的更短/更有效的方法,该函数按字典顺序添加新元素
- 双链表中按字母顺序排序的链接
- 为什么更改链接顺序可以修复一个系统上的一些链接错误?
- 链接列表并按字母顺序插入字符串
- 队列顺序中的链接列表
- AC_LANG_PROGRAM由于链接器选项的顺序失败了链接阶段
- 如何确定最快的链接顺序
- 通过Microsoft Visual Studio 2010 IDE 进行精确的库链接顺序控制
- 没有调用C++析构函数,具体取决于链接顺序
- 不同库中的相同符号和链接顺序
- 库的链接顺序问题
- 如何在忽略链接顺序的情况下链接源
- 为什么使用内联函数的程序根据链接顺序和参数具有不同的行为
- 绕过 gcc 中的静态链接顺序问题
- 在Qt Android项目中使用OpenCV时的链接顺序
- 是否可以在 cmake 中更改库链接顺序
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确