0

我想这是相当直截了当的,但我承认我并不精通 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变量将包含在该列表中,如果它在那里。

关于如何解决这个问题的任何建议?

4

1 回答 1

1

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

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

编译顺利...

于 2013-08-11T00:33:52.710 回答