1

由于我无法完全理解的原因,Cmake awlays 在编译软件时选择了 GNU 编译器工具集。

我的环境是这样的:

which cc
/opt/cray/xt-asyncpe/4.9/bin/cc
which CC
/opt/cray/xt-asyncpe/4.9/bin/CC
echo $CC
/opt/cray/xt-asyncpe/4.9/bin/cc
echo $CXX
/opt/cray/xt-asyncpe/4.9/bin/CC

但是当我使用 cmake 时,我得到了这个

Using existing /opt/cmake/2.8.4/bin/cmake
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info

它使用 g++ 命令构建所有软件。为什么会这样?如何设置编译器?

4

2 回答 2

5

您还可以像 autotools 一样设置环境变量 CC 和 CXX。

CC=cc CXX=CC cmake ...

确保从一个空的构建树开始。

于 2012-06-02T18:42:24.067 回答
2

我不确定为什么 CMake 偏爱 GCC。

但是,要设置编译器,请使用:

cmake <path to CMakeLists.txt> -DCMAKE_C_COMPILER=/opt/cray/xt-asyncpe/4.9/bin/cc -DCMAKE_CXX_COMPILER=/opt/cray/xt-asyncpe/4.9/bin/CC

这些值将被缓存,因此可以通过以下方式简单地调用 CMake 的后续运行(如果需要):

cmake .
于 2012-06-01T22:08:18.683 回答