gpt4 book ai didi

c++ - 为什么 clang++ 和 gcc/g++ 生成不同链接的可执行文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:25 26 4
gpt4 key购买 nike

当使用 g++ 和 clang++ 进行编译和链接时,期望生成的可执行文件的链接与它们的链接相同。

然而,在某些情况下,尽管传入的参数相同,但 clang++ 可执行文件似乎链接到比 g++ 更多的库。

这会导致功能差异,尤其是对于在加载和卸载时自动执行的动态链接库。

为什么会这样?

最佳答案

事实证明,gcc 在 ubuntu --as-needed 中默认启用了一项功能,这会导致 gcc 有效地忽略任何在链接项链中未引用其符号的库

这可以在 gcc 中使用 --no-as-needed 标志禁用。或者,您可以发出 -Wl,--as-needed 作为 clang++ 的第一个选项,以按照 gcc 的方式运行。

关于c++ - 为什么 clang++ 和 gcc/g++ 生成不同链接的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53504146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com