如何使用cmake强制UIC在源目录中生成ui_mainwindow.h

问题描述 投票:0回答:2

UIC成功创建了ui_mainwindow.h文件,但将其存储在构建目录中。这会导致编译时错误“ ui_mainwindow.h:找不到此类文件或目录”。

如果我将完整路径添加到构建目录中的ui_mainwindow.h文件,则cmake(catkin_make)成功构建了项目。显然,我想避免在源代码中使用头文件的绝对路径。

我的CMakeLists的相关部分:

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

find_package(Qt5 REQUIRED COMPONENTS Widgets Core )
add_executable(monitor src/mainwindow.cpp src/main.cpp src/mainwindow.ui)
qt5_use_modules(monitor Widgets)

target_link_libraries(monitor Qt5::Core Qt5::Widgets ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES} ${OpenCV_LIBS} )

我如何强制UIC在我的源目录中构建ui_mainwindow.h文件。或如何在我的CMakeLists.txt中包含cmake构建目录

我已经尝试过

qt5_wrap_ui (monitor_UI src/mainwindow.ui OPTIONS -o 'ui_mainwindow.h')
add_executable(monitor src/mainwindow.cpp src/main.cpp ${monitor_UI})

没有成功。

qt cmake catkin
2个回答
1
投票

基于hyde的评论,我只是使用以下方式将构建目录添加到includepaths中:>

include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
)

解决了我的问题。


0
投票

AUTOGEN_BUILD_DIR CMake变量指定where

© www.soinside.com 2019 - 2024. All rights reserved.