gpt4 book ai didi

C++ 链接器 - g++ 如何获取 ld

转载 作者:行者123 更新时间:2023-11-30 02:30:04 25 4
gpt4 key购买 nike

我是 C++ 编译器的新手。我想知道如何更改 g++ 的某些设置 以调用我想要的正确 ld 版本。

例如,我试过:

g++“一些共享库和文件”

然后/usr/bin/ld 将在内部调用。我应该怎么做才能让 g++ 改为调用 /home/alex/binutils-2.25/bin/ld

非常感谢。

亚历克斯

最佳答案

总的来说这不是最好的主意,因为这两者紧密集成,并且 GCC 有自己的搜索路径以及适用于特定 GCC 构建的适当工具是有原因的,因此最好将工具链作为一个整体进行切换。

无论如何,Jean-François Fabre 提供的链接在其 -B 参数建议中是正确的,而不是关于 PATH 环境变量,因为 PATH 仅在 GCC 内部路径中没有匹配项时才会被搜索,通常那里有一些东西。

您可以通过g++ -print-search-dirs 查看GCC 当前使用的路径以查找其组件,您对程序 感兴趣。使用 g++ -print-prog-name=ld 也可以很容易地检查编译器在何处找到 ld(或任何其他组件),它还允许检查 >-B 影响结果,例如:

$ g++ -print-prog-name=ld
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld
$ g++ -B/home/rik/bin -print-prog-name=ld
/home/rik/bin/ld

比较一下

$ PATH=/home/rik/bin:$PATH g++ -print-prog-name=ld
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld

[编辑]

顺便说一句,如果您的 GCC 是使用 --with-ld 选项(不是通常的方式,但是)专门配置的,那么即使这对您也无济于事,它会覆盖所有其他路径。

关于C++ 链接器 - g++ 如何获取 ld,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39012960/

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