尝试构建项目时,出现此错误: 用/代替\无效。 在此问题出现之前,Cmake并未检测到C和CXX编译器 我试图重新安装Cmake,修改CMakeCache.txt,但没有任何效果。 有提示吗?
C:\Users\TheSu\Desktop\gta3sc-master\build>cmake ..
CMake Error at CMakeFiles/3.18.0/CMakeCCompiler.cmake:1 (set):
Syntax error in cmake code at
C:/Users/TheSu/Desktop/gta3sc-master/CMakeFiles/3.18.0/CMakeCCompiler.cmake:1
when parsing string
C:\MinGW\bin\mingw32-gcc.exe
Invalid escape sequence \M
Call Stack (most recent call first):
CMakeLists.txt:2 (project)
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "C:/Users/TheSu/Desktop/gta3sc-master/CMakeFiles/CMakeOutput.log".
See also "C:/Users/TheSu/Desktop/gta3sc-master/CMakeFiles/CMakeError.log".
C:\Users\TheSu\Desktop\gta3sc-master\build>
CMakeLists.txt:
project(gta3sc)
include(deps/CMake/PrecompiledHeader.cmake)
include(deps/CMake/GetGitRevisionDescription.cmake)
if(NOT CMAKE_COMPILER_IS_GNUXX AND CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(CMAKE_COMPILER_IS_GNUXX 1)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_COMPILER_IS_CLANGXX 1)
endif()
if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1z")
endif()
if(CMAKE_COMPILER_IS_GNUXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-placement-new")
endif()
if(CMAKE_COMPILER_IS_CLANGXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-parentheses-equality -Wno-tautological-compare")
endif()
if(MSVC)
# MSVC ITERATOR_DEBUG_LEVEL=2 breaks expected-lite
add_definitions(-D_ITERATOR_DEBUG_LEVEL=0)
# Fix some weird linker error on Debug builds
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Ob1")
# Static link the CRT on release
foreach(flag_var CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endforeach(flag_var)
if(NOT CMAKE_CXX_FLAGS_RELEASE MATCHES "/MT")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
endif()
if(NOT CMAKE_CXX_FLAGS_RELWITHDEBINFO MATCHES "/MT")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MT")
endif()
endif(MSVC)
include_directories(
src
deps
deps/rapidxml
deps/cppformat
deps/optional/include
deps/expected/include
deps/any/include
deps/variant/include
)
add_library(cppformat
deps/cppformat/cppformat/format.cc
)
set(GTA3SC_SRC_MAIN
src/stdinc.h
src/stdinc.cpp
src/cdimage.hpp
src/binary_fetcher.hpp
src/binary_writer.hpp
src/annotation.hpp
src/codegen.hpp
src/codegen.cpp
src/config.cpp
src/commands.cpp
src/commands.hpp
src/compiler.hpp
src/compiler.cpp
src/decompiler_ir2.hpp
src/disassembler.hpp
src/disassembler.cpp
src/main.cpp
src/main_compile.cpp
src/main_decompile.cpp
src/parser_lexer.cpp
src/parser_syntax.cpp
src/parser.hpp
src/program.cpp
src/program.hpp
src/symtable.cpp
src/symtable.hpp
src/script.hpp
src/script.cpp
src/system.cpp
src/system.hpp
)
set(GTA3SC_SRC_MISC
src/cpp/any.hpp
src/cpp/argv.hpp
src/cpp/contracts.hpp
src/cpp/file.hpp
src/cpp/filesystem.hpp
src/cpp/icompare.hpp
src/cpp/optional.hpp
src/cpp/scope_guard.hpp
src/cpp/variant.hpp
src/cpp/string_view.hpp
src/cpp/small_vector.hpp
)
set(GTA3SC_SRC_GITSHA1 "${CMAKE_CURRENT_BINARY_DIR}/git-sha1.cpp")
add_executable(gta3sc ${GTA3SC_SRC_GITSHA1} ${GTA3SC_SRC_MISC} ${GTA3SC_SRC_MAIN})
source_group("autogen" FILES ${GTA3SC_SRC_GITSHA1})
source_group("cpp" FILES ${GTA3SC_SRC_MISC})
source_group("" FILES ${GTA3SC_SRC_MAIN})
target_link_libraries(gta3sc cppformat)
if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_COMPILER_IS_CLANGXX)
target_link_libraries(gta3sc stdc++fs)
endif()
if(MSVC) # idk how to setup this in GCC/Clang
add_precompiled_header(gta3sc stdinc.h SOURCE_CXX src/stdinc.cpp)
endif(MSVC)
add_definitions(-DGTA3SC_USING_GIT_DESCRIBE)
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
git_describe_long_exact(GIT_DESCRIBE_TAG)
git_branch(GIT_BRANCH)
if(GIT_DESCRIBE_TAG MATCHES "NOTFOUND")
set(GIT_DESCRIBE_TAG "")
endif()
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/git-sha1.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/git-sha1.cpp" @ONLY)
add_custom_command(TARGET gta3sc POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/config $<TARGET_FILE_DIR:gta3sc>/config)
#install(TARGETS gta3sc RUNTIME DESTINATION bin)
CMakeCache.txt:
# For build in directory: c:/Users/TheSu/Desktop/gta3sc-master
# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=C:/MinGW/bin/addr2line.exe
//Path to a program.
CMAKE_AR:FILEPATH=C:/MinGW/bin/ar.exe
//No help, variable specified on the command line.
CMAKE_CXX_COMPLIER:UNINITIALIZED=C:\MinGW\bin\mingw32-gcc-6.3.0.exe
//No help, variable specified on the command line.
CMAKE_C_COMPILER:UNINITIALIZED=C:\MinGW\bin\mingw32-gcc.exe
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=C:/MinGW/bin/mingw32-gcc-ar.exe
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=C:/MinGW/bin/mingw32-gcc-ranlib.exe
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=C:/MinGW/bin/dlltool.exe
//Path to a program.
CMAKE_LINKER:FILEPATH=C:/MinGW/bin/ld.exe
//Program used to build from makefiles.
CMAKE_MAKE_PROGRAM:STRING=nmake
//Path to a program.
CMAKE_NM:FILEPATH=C:/MinGW/bin/nm.exe
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=C:/MinGW/bin/objcopy.exe
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=C:/MinGW/bin/objdump.exe
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=gta3sc
//Path to a program.
CMAKE_RANLIB:FILEPATH=C:/MinGW/bin/ranlib.exe
//Path to a program.
CMAKE_READELF:FILEPATH=C:/MinGW/bin/readelf.exe
//Path to a program.
CMAKE_STRIP:FILEPATH=C:/MinGW/bin/strip.exe
//No help, variable specified on the command line.
MAKE_CXX_COMPILER:UNINITIALIZED=C:/MinGW/bin/c++.exe
//Value Computed by CMake
gta3sc_BINARY_DIR:STATIC=C:/Users/TheSu/Desktop/gta3sc-master
//Value Computed by CMake
gta3sc_SOURCE_DIR:STATIC=C:/Users/TheSu/Desktop/gta3sc-master
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/TheSu/Desktop/gta3sc-master
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=18
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=0
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe
//ADVANCED property for variable: CMAKE_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake-gui.exe
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=NMake Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/TheSu/Desktop/gta3sc-master
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-3.18
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
我应该尝试安装另一个版本的CMake吗?坏了吗?