CMake&QT5&Conan // CMAKE_AUTOUIC未生成ui头文件

时间:2018-09-24 13:32:14

标签: qt cmake conan uic

我已经尝试过以下线程中提供的解决方案: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可以正常工作)

非常感谢!祝你有美好的一天

1 个答案:

答案 0 :(得分:0)

如文档http://doc.qt.io/qt-5/cmake-manual.html中所示,您必须将mainwindow.ui文件添加到babel_client_SRCS中,然后将其传递到add_executable