3

带有 CMake 的 Qt 在链接过程中经常会导致麻烦。

在阅读了几篇文章并尝试后,我发现 AUTOMOC 采用了给出的源文件,add_executable但忽略了我在给出的包含文件夹中的头文件include_directories( inc )。将标头文件添加到add_executable构建后成功。

但是告诉AUTOMOC头文件的正确方法是什么?

在我的 CMake CMakeLists.txt我使用

set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
include_directories( inc )

set(QT5_MODULES Widgets)
find_package(Qt5 REQUIRED COMPONENTS ${QT5_MODULES})

add_definitions( -DQT_NO_KEYWORDS
                 -DQT_CORE_LIB 
                 -DQT_GUI_LIB 
                 -DQT_WIDGETS_LIB
                 -DQT_NO_DEBUG 
                 -DROSCONSOLE_BACKEND_LOG4CXX
                 -fPIC)

add_executable( MyGui
                src/main.cpp 
                inc/gui.h src/gui.cpp )

ament_target_dependencies( MyGui )
qt5_use_modules(MyGui ${QT5_MODULES})
4

0 回答 0