为什么CMake忽略编译器指令

时间:2014-02-15 09:29:50

标签: compiler-construction cmake cross-compiling

为什么CMake使用/ usr / bin / cc(c ++)而不是我在命令中给出的编译器?

bengt@bengt-VirtualBox:/usr/local/src/libftdi1-1.0$ cd build
bengt@bengt-VirtualBox:/usr/local/src/libftdi1-1.0/build$ sudo rm -R *
[sudo] password for bengt: 
bengt@bengt-VirtualBox:/usr/local/src/libftdi1-1.0/build$ sudo cmake -DMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabi-gcc-4.7 -DMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabi-g++-4.7 ..
-- The C compiler identification is GNU 4.8.1    
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- 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

编译器存在:

bengt@bengt-VirtualBox:/usr/local/src/libftdi1-1.0/build$ /usr/bin/arm-linux-gnueabi-gcc-4.7 -dumpversion
4.7

1 个答案:

答案 0 :(得分:2)

您正在设置

MAKE_C_COMPILER

您需要设置

CMAKE_C_COMPILER

类似于CXX编译器。使用

$ sudo cmake -DCMAKE_C_COMPILER=/usr/bin/arm-linux-gnueabi-gcc-4.7 \
-DCMAKE_CXX_COMPILER=/usr/bin/arm-linux-gnueabi-g++-4.7 ..