【发布时间】:2018-11-23 12:59:21
【问题描述】:
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(source_files
a.cpp
b.cpp
...
)
set(header_files
a.hpp
b.hpp
...
)
set(Qt_libs
Qt5::Core
Qt5::Gui
Qt5::Widget
...
)
add_library(demo SHARED ${header_files} ${source_files})
target_link_libraries(demo ${Qt_libs} ...)
set_properties(TARGET demo PROPERTY FOLDER "somewhere")
install(...)
我有一个示例CMakeLists.txt 如上所示。
最奇怪的是,它不会生成那些 moc 文件,直到我手动修改(比如在文件中添加一个空行)那些头文件(Q_OBJECT 出现的地方)。
这种情况并非每次都发生。但是,一旦发生这种情况,清理构建或删除整个项目文件都无济于事。
我正在使用qt 5.11、CMake 3.7、Visual Studio 2015。
【问题讨论】:
-
我对@987654328@ 也有疑问(很多其他人可能会告诉你)。添加需要
moc的新文件后,我总是运行cmake configure -
我有类似的问题,无法解决。所以我决定使用 qt5_generate_moc() 宏
-
@Mac 我将头文件和源文件都添加到目标中。它似乎不是由于处理 CMake 文件错误而产生的,因为问题只是有时会发生。
-
您是否尝试按照那里的说明将标题添加到解决方案中?
标签: visual-studio qt visual-c++ cmake