我已经尝试过以下线程中提供的解决方案:CMake & QT5 - QT5_WRAP_UI not generating ui header files,但没有任何变化。
这是我的第一个CMakeLists.txt(位于项目的根目录,称为第二个)
cmake_minimum_required (VERSION 3.11.2)
project(babel)
include(${CMAKE_SOURCE_DIR}/build/conanbuildinfo.cmake)
conan_basic_setup()
subdirs(client)
第二个是:
include_directories(${babel_SOURCE_DIR}/client/inc)
include_directories(${babel_SOURCE_DIR}/common)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
set(babel_client_SRCS
main.cpp
mainwindow.cpp
)
set(CMAKE_CXX_FLAGS "-Wall -fPIC -std=c++11")
set(CMAKE_AUTOUIC ON)
set(AUTOGEN_BUILD_DIR ${CMAKE_SOURCE_DIR/client/inc})
add_executable(babel_client ${babel_client_SRCS})
target_link_libraries(babel_client ${CONAN_LIBS})
我的main.cpp得到了#include "ui_mainwindow.h"
这是错误输出:
[ 33%] Building CXX object client/src/CMakeFiles/babel_client.dir/main.cpp.o
/plopPath/client/src/main.cpp:1:10: fatal error: ui_mainwindow.h: No such file or directory
#include "ui_mainwindow.h"
^~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [client/src/CMakeFiles/babel_client.dir/build.make:63: client/src/CMakeFiles/babel_client.dir/main.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:104: client/src/CMakeFiles/babel_client.dir/all] Error 2
gmake: *** [Makefile:84: all] Error 2
有什么想法吗?我尝试将set(CMAKE_AUTOUIC ON)放在CMaleLists.txt中的不同位置,但是看起来没有任何变化(在项目文件夹中没有创建ui_mainwindow.h)
PS:我正在使用多平台二进制管理器CONAN来获取Qt(但是使用不带.ui文件的Qt可以正常工作)
非常感谢!祝你有美好的一天
答案 0 :(得分:0)
如文档http://doc.qt.io/qt-5/cmake-manual.html中所示,您必须将mainwindow.ui
文件添加到babel_client_SRCS
中,然后将其传递到add_executable