gpt4 book ai didi

c++ - 在主目录中本地安装 gcc

转载 作者:行者123 更新时间:2023-12-02 10:12:27 25 4
gpt4 key购买 nike

我的问题是:如何确保 gcc 默认自动找到正确的包含文件?我所做的是使用 --prefix=$HOME/.local 编译 gcc 模块分支并且它有效。接下来要尝试下一个要求:使用该新编译器安装“build2”。所以我愿意

PATH="$HOME/.local/bin:$HOME/.local/libexec/gcc/x86_64-pc-linux-gnu/11.0.0/:$PATH" LD_LIBRARY_PATH="/home/p/.local/lib64" sh build2-install-0.13.0.sh --sudo false $HOME/.local/
我收到很多关于缺少头文件的错误,比如数组、stddef.h、sstream、bits/c++config.h 和 limits.h
添加 -I$HOME/.local/{include/c++/11.0.0/x86_64-pc-linux-gnu,include/c++/11.0.0,lib/gcc/x86_64-pc-linux-gnu/11.0.0/include,lib/gcc/x86_64-pc-linux-gnu/11.0.0/include-fixed}到 g++ 选项修复了这些,但我希望将这些路径内置到我的编译器中。我怎么做?我必须在 gcc 源代码中的什么位置进行更改以使 gcc 知道它在哪里安装了所有这些 header ?
编辑:我的问题的解决方法很简单:问题是 ~/.local/bin 是 ~/bin 的符号链接(symbolic link),所以我只需要 rm ,将 ~/bin 移动到它的位置,并可选择从 ~/.本地/bin 到 ~/bin。不过,我的问题仍然存在,现在可能更具学术性:我如何强制 gcc 默认在某个位置查找 header ?

最佳答案

如果您使用 GNU Make , 你必须设置一些 implicit variables :

$ export CXX=/path/to/your/installation/bin/g++
$ export CC=/path/to/your/installation/bin/gcc
$ export LDFLAGS="${LDFLAGS} -L /path/to/your/installation/lib64 \
-Wl,-rpath -Wl,/path/to/your/installation/lib64"
在哪里 /path/to/your/installation是您安装的位置 gcc .
请注意,我还导出了 CC它定义了 C 编译器。另外, export LDFLAGS="${LDFLAGS} ...防止覆盖 LDFLAGS 的先前设置.
加法
OP问

how do I force gcc to look for headers at a certain location by default

gcc在其安装文件夹中搜索标准库的头文件*。您可以按照 here 的说明明确检查.
所以不需要添加 -I /path/to/your/installation使用本地安装的标题。
无论如何,来自 man pages of g++ :

CPATH specifies a list of directories to be searched as ifspecified with -I, but after any paths given with -I options on the command line.


导出 CPATH=...设置默认目录来搜索标题。

*如评论中所述,gcc 似乎在相对于可执行文件 g++/gcc 的位置的路径中搜索其库,*解析最终的符号链接(symbolic link)*。

关于c++ - 在主目录中本地安装 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63002254/

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