用于LLVM的GCC工具链

时间:2014-05-14 21:09:53

标签: c++ llvm configure rhel

我在RHEL 6.x盒子上运行,当然安装了GCC 4.4。我希望在这台机器上运行LLVM。为了做到这一点,我必须从源代码编译它。为了那个,我需要一个更现代的GCC版本。

所以,在the instructions之后,我建立了GCC 4.8.2:

[snip]
% $PWD/../gcc-4.8.2/configure --prefix=$HOME/toolchains --enable-languages=c,c++
% make -j$(nproc)
% make install

我以root身份登录,因此$HOME/toolchains解析为/root/toolchains

在满足LLVM的先决条件后,我已准备好配置和构建LLVM。

root@dev06 /root/llvm-build # ~/llvm/configure --enable-optimized --prefix=$HOME/toolchains/ --with-gcc-toolchain=/root/toolchains/
checking for clang... no
[snip]
checking target architecture... x86_64
checking whether GCC is new enough... no
configure: error:
The selected GCC C++ compiler is not new enough to build LLVM. Please upgrade
to GCC 4.7. You may pass --disable-compiler-version-checks to configure to
bypass these sanity checks.
root@dev06 /root/llvm-build # 

configure认为我仍在使用GCC 4.4,即使我通过--with-gcc-toolchain=/root/toolchains/配置 1 。让我们确保我正确安装了4.8.2。

root@dev06 /root/llvm-build # $HOME/toolchains/bin/g++ --version
g++ (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

如何说服configure使用我/root/toolchains处的GCC?


1 :我尝试了--with-gcc-toolchain中指定的路径的多种变体,包括/root/toolchain/bin/root/toolchain/bin/g++等。

2 个答案:

答案 0 :(得分:7)

正如您所发现的,解决此问题的正确方法是将自定义工具链添加到PATH。这不是系统范围的更改,仅限于您的shell会话。或者,您可以配置:

../llvm/configure CXX=$HOME/toolchains/bin/g++

以及configure的{​​{1}}输出中记录的类似选项。

选项--help只告诉构建的Clang在哪里查找C ++标准库和头文件,它与LLVM / Clang构建过程无关。我强烈建议你也建立并安装libc ++和libc ++ abi,​​并将它们与你的新Clang一起使用。

答案 1 :(得分:0)

LLVM项目不再支持使用configure& amp;使

我在变量CC,CXX和FC中指定了c,c ++和fortran编译器。

export CC=/path/to/gcc
export CXX=/path/to/g++
export FC=/path/to/gfortran

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/opt/clang ../llvm-4.0.0
make
make install