Cat*_*kul 4 c++ linker gcc clang
在编译和链接g ++和clang ++时,期望生成的可执行文件在链接方面的链接相同.
但是在某些情况下,尽管传入了相同的参数,但似乎clang ++可执行文件链接到比g ++更多的库.
这可能会导致功能差异,尤其是在加载和卸载时自动执行的动态链接库方面.
为什么会这样?
Cat*_*kul 7
事实证明,gcc在ubuntu --as-needed中默认启用了一个功能,这会导致gcc有效地忽略链接项链中没有引用任何符号的库.
--as-needed
这可以在带有--no-as-needed标志的gcc中禁用.或者你可以发出-Wl,--as-needed第一个选项来clang ++来表现gcc的行为方式.
--no-as-needed
-Wl,--as-needed
归档时间:
6 年,9 月 前
查看次数:
140 次
最近记录: