Centos CMake 无法使用 gcc 4.7.2 安装

Centos CMake 无法使用 gcc 4.7.2 安装

这里报告了类似的问题,但没有解决方案:https://www.centos.org/modules/newbb/print.php?form=1&topic_id=42696&forum=56&order=ASC&start=0

我已将 gcc 添加并升级到 centos

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo 
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
scl enable devtoolset-1.1 bash

我的 gcc 的结果是这样的

[root@hhvm-build-centos cmake-2.8.11.1]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/opt/centos/devtoolset-1.1/root/usr --mandir=/opt/centos/devtoolset-1.1/root/usr/share/man --infodir=/opt/centos/devtoolset-1.1/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-ppl --with-cloog --with-mpc=/home/centos/rpm/BUILD/gcc-4.7.2-20121015/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.7.2 20121015 (Red Hat 4.7.2-5) (GCC) 

然后我尝试通过安装 cmakehttp://www.cmake.org/cmake/resources/software.html#latest

但我一直遇到这个错误:

Linking CXX executable ../bin/ccmake
/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: CMakeFiles/ccmake.dir/CursesDialog/cmCursesMainForm.cxx.o: undefined reference to symbol 'keypad'
/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: note: 'keypad' is defined in DSO /lib64/libtinfo.so.5 so try adding it to the linker command line
/lib64/libtinfo.so.5: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
gmake[2]: *** [bin/ccmake] Error 1
gmake[1]: *** [Source/CMakeFiles/ccmake.dir/all] Error 2
gmake: *** [all] Error 2

该问题似乎来自安装的新 gcc,因为它适用于默认安装。这个问题有解决办法吗?

答案1

我认为问题出在较新版本的 binutils 上。我尝试使用 binutils 2.23.2 使用 gcc-4.7.2 编译 OpenFOAM,并使用 cmake 得到相同的错误。我尝试了版本 2.8.3、2.8.4 和最新的 2.8.12.1 - 都没有成功(相同的键盘错误)。不过我后来成功编译了 cmake-2.8.3 (使用 gcc 4.7.3 但我认为 4.7.2 也可以工作)但是使用二进制实用程序 2.23(我要补充的是,这不是我的想法)。您可以关注帖子18-21中的讨论 http://www.cfd-online.com/Forums/openfoam-installation/121996-error-installing-openfoam-2-2-0-centos-6-4-a.html

答案2

OpenFOAM/ThirdParty-2.3.1/cmake-2.8.12.1/Source/CursesDialog 在文件的文件夹中CMakeLists.txt 添加以下行

target_link_libraries(ccmake tinfo)

(就在其他target_link_libraries命令下方)

问候

相关内容