强制链接未使用的共享库

que*_*en3 15 c++ linux gcc

从gcc 4.5移到gcc 4.6,现在它不链接到编译时未使用的库(即,如果没有从它们导入符号).

但是,这些库的目的是它们执行静态构造函数,从而使它们在运行时可用于应用程序(注册它们的符号).

有没有办法强制gcc链接到通过-l列出的所有库?

Jon*_*art 15

看起来你需要-Wl,--no-as-needed完全禁用它.或者,--no-as-needed -lfoo --as-needed仅为了禁用"按需" libfoo.

资料来源:https://lists.ubuntu.com/archives/ubuntu-devel/2010-November/031991.html

编辑:啊看起来像Mat在评论中实际上打败了我:-)