c++ - CMake Qt5指定头ui文件的输出目录
问题描述
我在多个子目录中重新组织了一个 CMake Qt5 项目,最终的文件夹结构如下所示:
├── CMakeLists.txt
├── headers
│ ├── a.h
│ ├── b.h
├── LICENSE
├── README.md
├── resources
│ ├── images
│ │ ├── img.png
│ └── res.qrc
├── sources
│ ├── main.cpp
│ ├── a.cpp
│ ├── b.cpp
└── ui
├── a.ui
└── b.ui
当我尝试编译整个项目时出现问题:实际上编译器说它找不到头 ui 文件(例如ui_main.h
和ui_sub.h
),这是错误:
In file included from /home/vbm/test/headers/a.h:13,
from /home/vbm/test/headers/b.h:14,
from /home/vbm/test/sources/main.cpp:6:
/home/vbm/test/headers/a.h:12:10: fatal error: ui_a.h: No such file or directory
#include "ui_a.h"
^~~~~~~~
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.9)
project(test VERSION 0.1)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Core REQUIRED)
# Declaring files
set( SOURCES
sources/main.cpp
source/a.cpp
source/b.cpp
)
set( HEADERS
headers/a.h
headers/b.h
)
set( UIS
ui/a.ui
ui/b.ui
)
set( RES
resources/res.qrc
)
add_executable(test ${SOURCES} ${HEADERS} ${UIS} ${RES})
target_link_libraries(test Qt5::Widgets Qt5::Core)
如何指定这些头 UI 文件的输出目录?
--EDIT--
我已经添加了CMAKE_AUTOUIC_SEARCH_PATHS
属性但没有成功,编译器仍然给了我同样的错误。
这是我添加到 CMakeLists.txt 中的内容:
set(CMAKE_AUTOUIC_SEARCH_PATHS "${PROJECT_SOURCE_DIR}/ui")
解决方案
推荐阅读
- export-to-csv - 如何将睡眠 edf 数据转换为 .csv 并从 psg 信号中提取有意义的特征
- ruby-on-rails - 测试评论控制器。我无法通过创建评论的测试
- python - 如何在 Python 中使用 XMLRPC 在 Odoo 中创建延期交货?
- python - 为什么我的 argparse 程序不继续执行下一行?
- java - 如何在 Android Datepicker 中更改星期几的缩写?
- arrays - 将字符串数组设置为组合框列表会在 Visual Basic 中给出 Argument is required 错误
- c# - 来自 TextFile 的实时数据
- oracle - Oracle - LAST_DAY 和 TRUNC - 执行顺序
- elasticsearch - 更新索引不起作用 - Elastic Search 6.2.2
- angular - 使用输入 ngFor 访问表中的值更改