c++ - 使用 CMake 在 CLion 中设置 Qt6 项目
问题描述
我正在尝试制作一个 Qt6 应用程序,但是我不太喜欢 qtcreator,所以我想在 CLion 中工作。我一直在尝试使用 CMake 配置我的项目,但我对这一切有点陌生,即使我在 jetbrains 网站上遵循了这个“教程”,我也被困住了:https ://www.jetbrains.com/help/clion /qt-tutorial.html#configure-cmakelists
这是我的 CMakeList.txt 文件:
cmake_minimum_required(VERSION 3.19)
project(VidShare)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_PREFIX_PATH "C:/Qt/6.1.1/mingw81_64/lib/cmake/")
find_package(Qt6Widgets REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
add_executable(VidShare main.cpp)
target_link_libraries(VidShare Qt6::Widgets)
这是我的项目结构:
Vidshare
\--cmake-build-debug # This was generated by CLion itself
\--src # Currently empty
CMakeList.txt
main.cpp
当我单击构建时,我收到以下消息:
CMake Error at CMakeLists.txt:9 (find_package):
Could not find a configuration file for package "Qt6Widgets" that is
compatible with requested version "".
The following configuration files were considered but not accepted:
C:/Qt/6.1.1/mingw81_64/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake, version: 6.1.1 (64bit)
就像我说的我是 cmake 的新手,所以这可能是一些愚蠢的错误,但我已经做了太久了,我的研究并没有真正把我带到任何地方。我在 Windows 10 上使用 minGW,但我怀疑这是目前的问题。我还认为也许我必须将 Qt 库放在我的项目或其他东西中,但我不知道将它们放在哪些或放在哪里,但C:\Qt\
如果这有帮助,我的 Qt 安装文件夹就在其中。
基本上我想要的是设置我的环境以便能够在 CLion 中使用 qt6 ..
提前致谢!
解决方案
经过进一步研究,我意识到我没有使用好版本的 MinGW(因此出现错误消息)。我下载了 64 位版本的 MinGW 并尝试使用该编译器本身并正确构建了项目。此外,我遇到了一个问题,它可以正常编译但不能运行并返回错误代码。我必须将 Qt 二进制文件放在我的系统路径变量 ( C:\Qt\6.1.1\mingw81_64\bin
) 中,然后我可以使用以下测试代码正确显示一个窗口:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QLabel label("Hi babygurl!", nullptr);
label.resize(200, 100);
label.show();
return QApplication::exec();
}
推荐阅读
- rust - Rust 特征字段生命周期
- python - 我应该在 try-except 中包含验证函数并重新引发异常吗?
- ruby-on-rails - Rails - problema con il salvataggio di un array tramite check_boxes
- r - 制作具有多个 y 值的 ggplot 图表
- python - 当我按下一个调用更新我的数据库的方法的按钮时,Python Shell 崩溃
- git - Git 从另一个存储库中将更改拉入单一存储库
- terminal - 在被其他进程重新启动之前,无法从终端读取数据
- python - 为什么我在 MacOSX 终端中收到 NameError?
- ios - 如何在表格视图单元格中快速处理多个文本字段
- mongodb - 对 Get 请求的空数组响应