gpt4 book ai didi

c++ - 修改g++库路径

转载 作者:行者123 更新时间:2023-11-28 06:25:05 25 4
gpt4 key购买 nike

我最近安装了 gcc 4.9.2,在链接 libs 时发现了一个问题。

搜索路径的输出:

install: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/
programs: =/usr/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/:/usr/libexec/gcc/x86_64-unknown-linux-gnu/4.9.2/:/usr/libexec/gcc/x86_64-unknown-linux-gnu/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/gcc/x86_64-unknown-linux-gnu/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/bin/
libraries: =/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/lib/x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/lib/../lib64/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../lib64/:/lib/x86_64-unknown-linux-gnu/4.9.2/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-unknown-linux-gnu/4.9.2/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../x86_64-unknown-linux-gnu/lib/:/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../:/lib/:/usr/lib/

真的,有问题的是:

/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib64/

我需要更改这两个库的顺序(以便 lib64 具有更高的搜索优先级),因为两个目录都有 libstdc++.so.6,我需要使用 lib64 文件夹中的那个。

我该怎么做?

请不要:

1,建议我更改 LD_LIBRARY_PATH 以显式包含 libstdc++.so.6,因为我确定 x86_64-linux-gnu 文件夹中的其他内容是 lib64 文件夹中的旧版本 - 我从旧版本。

2,建议我在 g++ -L 选项中明确包含 lib64/libstdc++.so.6。

非常感谢。

/***************************编辑更多信息****************** ******/

根据下面的要求,这里有一些关于配置和安装的更多细节(我从 gcc.gnu.org 下载了 4.9.2 源,解压并在 4.9.2 顶级文件夹中启动):

mkdir ../gcc-build                                   &&
cd ../gcc-build &&

../gcc-4.9.2/configure \
--prefix=/usr \
--libdir=/usr/lib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--disable-multilib \
--with-system-zlib \
--enable-languages=c,c++ &&
make

最佳答案

您可以拥有一个新的(或修改现有的)GCC specs 文件,文档为 here .

AFAIK,specs 文件在您的“安装”目录中,因此您将在
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/specs(如果不存在,您可以创建)。

AFAIK 有一些内置默认值,但您可以将系统配置为具有显式默认值。

另请阅读 debugging options海湾合作委员会。您可能希望使用 -dumpspecs 来获取内置的默认规范。

详细信息可能与您的系统高度相关,尤其是如果您编译了 GCC从它的源代码。

我对 specs 文件不够熟悉,无法为您的特定问题提供可靠的解决方案。您可以在 gcc-help@gcc.gnu.org 上询问详细信息。


注意:我倾向于认为使用 --prefix=/usr 配置 gcc(而不是像默认的 - 这样的非系统前缀) -prefix=/usr/local/ 或一些 --prefix=/opt/ 等...)是一个错误(或者至少也使用 --program-suffix =-4.9)。您可能会混淆您的 gcc 和系统 gcc;如果你想替换你的系统gcc(这可能是危险的)你应该配置你的新gcc与你的系统相同的参数>gcc 了。请注意,/usr/bin/gcc -v 告诉您系统 gcc 是如何配置的(在覆盖它之前完成)。

在一些旧系统上编译最新的 GCC 4.9 时,我通常建议使用 --prefix=/usr/local/--program-suffix=-4.9 然后将 /usr/local/bin/ 添加到您的 $PATH,并使用 make CC=gcc-4.9 CXX=g++-4.9 用它构建程序。

关于c++ - 修改g++库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28663670/

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