【发布时间】:2013-11-08 18:49:57
【问题描述】:
我有一个使用 Qt5 的项目,我有一个 CMakeLists.txt 文件,用于创建 Visual Studio 解决方案。
这是我CMakeLists.txt的摘录
cmake_policy(SET CMP0020 NEW)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 REQUIRED COMPONENTS core widgets)
set(COMMON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/src)
include_directories( ${Boost_INCLUDE_DIRS}
${COMMON_INCLUDE_DIR}
)
file(GLOB_RECURSE COMMON_SOURCE "*.hpp" "*.cpp")
add_library(${PROJECT_NAME} ${COMMON_SOURCE})
qt5_use_modules(${PROJECT_NAME} Widgets)
当我尝试编译代码时,它返回以下错误:
>AUTOMOC : error : C:/Users/.../Projects/MyProject/build/MyProjects_automoc.cpp The file includes the moc file "moc_MyFile.cpp", but could not find header "MyFile{.h,.hh,.h++,.hm,.hpp,.hxx,.in,.txx}" in C:/Users/.../Projects/MyProject/build/
moc 文件是自动生成的,头文件不在 build 文件夹中,而是在 src 目录下的文件夹中。
如何解决这个错误?
【问题讨论】:
-
您使用的是什么版本的 CMake?
-
如果将所有文件都放在 CMakeList.txt 所在的 dir 和 INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) 中,它是否工作良好`
标签: qt cmake qt5 moc automocking