cmakecross-compiling

Why does CMake ignore compiler directives


Why is CMake using /usr/bin/cc (c++) and not the compiler I give in the command?

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

The compiler exists:

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

Solution

  • You are setting

    MAKE_C_COMPILER
    

    You need to set

    CMAKE_C_COMPILER
    

    Similar for the CXX compiler. Use

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