5

このCMakeLists.txtファイルに問題があります。

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)

でcmakeを呼び出す: cmake -G "MinGW Makefiles"

私は得る:

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!

私も試しました:

C:\MinGW\bin\g++
/C/MinGW/bin/g++

同じ結果になります。二重引用符も役に立ちませんでした。

もちろん、コンパイラは指定されたディレクトリにあります。

ヒントありがとうございます。

4

1 に答える 1

5

でリテラルのバックスラッシュを取得するには、4 つのバックスラッシュを使用する必要がありますSET

SET(CMAKE_C_COMPILER C:\\\\MinGW\\\\bin\\\\gcc)
SET(CMAKE_CXX_COMPILER C:\\\\MinGW\\\\bin\\\\g++)

これは、引数を引用符で囲むかどうかに関係なく適用されます。

これはかなり見苦しいので、おそらくスラッシュを使用する方がよいでしょう:

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)
SET(CMAKE_CXX_COMPILER C:/MinGW/bin/g++)
于 2012-10-24T15:58:55.497 に答える