cmake: problèmes spécifiant le compilateur
J'ai un problème avec cette CMakeLists.txt fichier:
cmake_minimum_required(VERSION 2.6)
SET(CMAKE_C_COMPILER C:\\MinGW\\bin\\gcc)
SET(CMAKE_CXX_COMPILER C:\\MinGW\\bin\\g++)
project(cmake_test)
add_executable(a.exe test.cpp)
L'appel de cmake avec: cmake -G "MinGW Makefiles"
J'obtiens:
c:\cmake_test>cmake -G "MinGW Makefiles" .
-- The C compiler identification is GNU 4.6.1
CMake Warning (dev) at CMakeFiles/CMakeCCompiler.cmake:1 (SET):
Syntax error in cmake code at
C:/cmake_test/CMakeFiles/CMakeCCompiler.cmake:1
when parsing string
C:\MinGW\bin\gcc
Invalid escape sequence \M
Policy CMP0010 is not set: Bad variable reference syntax is an error. Run
"cmake --help-policy CMP0010" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Call Stack (most recent call first):
CMakeLists.txt:12 (project)
This warning is for project developers. Use -Wno-dev to suppress it.
-- The CXX compiler identification is GNU 4.6.1
CMake Warning (dev) at CMakeFiles/CMakeCXXCompiler.cmake:1 (SET):
Syntax error in cmake code at
C:/cmake_test/CMakeFiles/CMakeCXXCompiler.cmake:1
when parsing string
C:\MinGW\bin\g++
Invalid escape sequence \M
Policy CMP0010 is not set: Bad variable reference syntax is an error. Run
"cmake --help-policy CMP0010" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
Call Stack (most recent call first):
CMakeLists.txt:12 (project)
This warning is for project developers. Use -Wno-dev to suppress it.
-- Check for working C compiler: C:\MinGW\bin\gcc
CMake Error at C:/cmake_test/CMakeFiles/CMakeCCompiler.cmake:1 (SET):
Syntax error in cmake code at
C:/cmake_test/CMakeFiles/CMakeCCompiler.cmake:1
when parsing string
C:\MinGW\bin\gcc
Invalid escape sequence \M
Call Stack (most recent call first):
CMakeLists.txt:2 (PROJECT)
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed
CMake Error: your C compiler: "C:\MinGW\bin\gcc" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "C:\MinGW\bin\g++" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!
J'ai aussi essayé avec:
C:\MinGW\bin\g++
/C/MinGW/bin/g++
avec le même résultat. Guillemets n'ont pas été utiles, soit.
Bien sûr, le compilateur est présent dans le répertoire spécifié.
Vous remercie de tout soupçon.
SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)
est un peu plus facile à utiliser.- Nice, un mélange de Windows et Unix syntaxe 😉
- FYI: barres obliques ont été pris en charge depuis DOS 2.0!
- et il semble que vous avez besoin ".exe" à la fin des noms de fichiers
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser quatre barres obliques inverses pour obtenir un antislash dans une
SET
:Cela s'applique si vous utilisez des guillemets autour de l'argument.
Puisque c'est assez laid, il est probablement préférable d'utiliser des barres obliques: