Qt与CMake经常在链接过程中遇到麻烦。
在阅读了几篇帖子并尝试后,我发现AUTOMOC获取了add_executable
给出的源文件,但忽略了include_directories( inc )
给出的include文件夹中的头文件。将标头文件添加到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})