根据cmake documentation,我应该只能使用一个属性而不必包含我的头文件,其中包含一个Q_OBJECT宏,如下面的cmake片段所示。如果我使用包装宏代码编译并运行但是如果我只使用enabled属性,则会出现编译错误
../ gui / libgui.so:未定义引用`vtable for ImageWidget'
为什么会这样?
cmake_minimum_required (VERSION 3.5.1 FATAL_ERROR)
project (app)
#QT5_WRAP_CPP(MOC_files
# ../gui/include/gui/imageWidget.hpp
#)
add_executable(${PROJECT_NAME}
main.cpp
# ${MOC_files}
)
target_include_directories(${PROJECT_NAME}
PUBLIC ${PROJECT_BINARY_DIR}
)
set_target_properties(${PROJECT_NAME} PROPERTIES AUTOMOC TRUE)
target_link_libraries(${PROJECT_NAME}
PRIVATE
Qt5::Widgets
Qt5::Core
Qt5::Xml
Qt5::OpenGL
Qt5::Gui
)
set_target_properties(${PROJECT_NAME} PROPERTIES
INSTALL_RPATH "$ORIGIN:${CMAKE_INSTALL_PREFIX}/lib:$ORIGIN/")
install(TARGETS ${PROJECT_NAME}
DESTINATION bin)