使用CMake继承Qt中的表单(多重继承方法)



我想这是相当直接的,但我承认我不太熟悉CMake(或Qt),所以问题是:

我有一个在Qt Designer中构建的表单(有一个.ui文件)。已经创建了两个基于此表单的类。这两个类都有很多重复的代码。因此,我想创建一个基类,使用多重继承方法来管理公共代码,该基类继承了formname.ui文件。

问题是我不知道如何让CMake正确构建它。编译时出现错误ui_formname.h: No such file or directory

我已经确定了以下必要的元素,以使CMake正确地构建它:

set (UI_HDR ${CMAKE_SOURCE_DIR}/path/to/formname.ui)
QT4_WRAP_UI (COMPONENT_UI_HDR ${UI_HDR})
include_directories(${CMAKE_CURRENT_BINARY_DIR}) #Necessary here?

这与其他两种情况的区别在于,这个cmakefile没有构建可执行文件,而在其他两种情形中,它是。可能是我遗漏了其他内容,但缺少add_executable行是我能看到的最明显的区别,因为如果有COMPONENT_UI_HDR变量,它就会被包括在该列表中。

关于如何解决这个问题,有什么建议吗?

解决了问题。事实上,我对"add_executable"的区别是正确的。由于这是一个库,而不是可执行文件,所以我必须在add_library调用中添加对包装变量的引用,即:

add_library ( ${...} ${COMPONENT_UI_HDR} )

编译顺利。。。

最新更新