@杰佩森,我试图复制你的问题,但我得到了你同样的错误。我通过使用旧版本的
CMake
3.1,在这种情况下,我还指定了我想用C++语言使用
CMAKE_CXX_FLAGS
有特定的方向
-std=c++11
. 你提到的文件是完全正确的。
CMake公司
CMake公司
设置
OLD
我通常尽量不包括
cmake_policy(policy #)
因为它们大多数是为旧版本设计的,因此一些功能可能会被弃用,并被新版本取代。当然,在某些情况下
cmake_policy(SET CMP<####> NEW)
cmake_policy(SET CMP<####> OLD)
以下是工作代码(在我的计算机上编译):
cmake_minimum_required (VERSION 3.1)
project (awfviewer)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
message (STATUS "Building project ${PROJECT_NAME}")
set (Boost_USE_STATIC_LIBS ON)
set (Boost_USE_MULTITHREADED ON)
unset (Boost_INCLUDE_DIR CACHE)
unset (Boost_LIBRARY_DIRS CACHE)
set (CMAKE_INCLUDE_CURRENT_DIR ON)
set (CMAKE_AUTOMOC ON)
set (CMAKE_AUTORCC ON)
find_package (Boost COMPONENTS program_options filesystem REQUIRED)
find_package (Qt5Core REQUIRED)
include_directories (${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/main ${CMAKE_CURRENT_SOURCE_DIR} ${Boost_INCLUDE_DIRS})
set (PROJECT_SRC)
set (PROJECT_MAIN
main.cpp
)
add_executable (${PROJECT_NAME} ${PROJECT_SRC})
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
在这种情况下,我唯一没有复制的是创建一个
QRC
CMake公司
能够识别和接受旧版本的
CMake公司
给了新版本。
我希望这对你的项目有用