1

私は CMake (2.8.7) と gcc 4.6.3 で Qt クリエーター 2.5 を使用していますが、最近、この奇妙なエラーが発生しました:

:-1: エラー: [CMakeFiles/yahtzee.dir/gamecontroller.cpp.o] エラー 1 ファイルが見つかりません

私はそれについて何ができますか?CMakeはこれを生成していませんgamecontroller.cpp.o

これは私のCMakeLists.txtファイルです

project(cpp_workshop)
cmake_minimum_required(VERSION 2.6)

# Set default compile flags for GCC
if(CMAKE_COMPILER_IS_GNUCXX)
    message(STATUS "GCC detected, adding compile flags")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wall -Wextra -Werror")
else()
    message(STATUS "GCC not detected, probably running Windows")
endif(CMAKE_COMPILER_IS_GNUCXX)


#add_definitions("-Wall -Werror")
ADD_DEFINITIONS("-Wno-unused-parameter")

add_executable(yahtzee #name of the executable
gamecontroller.h gamecontroller.cpp
player.h player.cpp
game.h game.cpp
dice.h dice.cpp
strategy.cpp strategy.h
istrategy.h
game_rules.h
main singleton 
)

言及するだけで、これらのファイルはすべてディレクトリにあり、これは CMake が作成する「ビルド」ディレクトリです。

CMakeCache.txt  CMakeFiles  cmake_install.cmake  cpp_workshop.cbp  Makefile

そして上記のCMakeFilesディレクトリ

CMakeCCompiler.cmake               CMakeDirectoryInformation.cmake  CompilerIdCXX   TargetDirectories.txt
cmake.check_cache                  CMakeOutput.log                  Makefile2       yahtzee.dir
CMakeCXXCompiler.cmake             CMakeSystem.cmake                Makefile.cmake
CMakeDetermineCompilerABI_C.bin    CMakeTmp                         Progress
CMakeDetermineCompilerABI_CXX.bin  CompilerIdC                      progress.marks
4

1 に答える 1

1

OK、問題はCmakegcc に渡された の引数にありました

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

私はそれをに変更しました

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")

そして今それは動作します。驚いたことに、C++11 はまだ gcc で動作しませんか?

于 2012-07-19T08:27:09.923 に答える