【问题标题】:CMake & QT5 & Conan // CMAKE_AUTOUIC not generating ui header filesCMake & QT5 & Conan // CMAKE_AUTOUIC 不生成ui头文件
【发布时间】:2018-09-24 13:32:14
【问题描述】:

我已经尝试了这个帖子中给出的解决方案: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 可以正常工作)

【问题讨论】:

  • 如果您使用的是 cmake 3.11,那么您不应该手动设置编译器标志。相反,您应该设置指定编译器标志的编译器选项,而不管您使用哪种编译器。例如,您可以从 cmake 3.1 开始使用set (CMAKE_CXX_STANDARD 11),也可以使用set_target_properties(FooTarget PROPERTIES CXX_STANDARD 11 CXX_EXTENSIONS OFF)

标签: qt cmake conan uic


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2017-12-11
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2020-06-23
    • 1970-01-01
    相关资源
    最近更新 更多