如何在CLion里愉快的开发QT

先简单阐述一下这样做的优势

  • CLion本身的优秀,逐渐向VS看齐的全面的功能。也是面向未来的优秀全能开发平台。JetBrains系列用户无需重新上手
  • 强大的错误提示和警告提示
  • 强大的代码补全,重构,生成,分析功能
  • 配合插件库实现生产效率的最大化
  • 强大的调试分析能力

说完优点必须说说缺点

  • 项目需要为cmake格式,qmake格式的项目需要进行简单的转化(因为代码相同,只是编译步骤不同,但是编译结果相同)
  • 每次开始写项目都需要做少量工作,比如配置cmakelist文件
  • 相比QTCreator,运行速度会稍慢(CLion软件占用内存更大)
  • 不能同时安装msvc和mingw的QT库,这会导致一些问题。最好的解决方法是重装
  • CLion收费,在此不提供任何有关的破解方案。

Tips:

  • 你不需要配置外部uic工具,cmake会帮你做uic的转化(ui文件编译为c++)
  • 你不需要配置.ui文件打开方式,CLion会帮你打开QTCreator来绘制窗口

下载安装QT

https://mirrors.tuna.tsinghua.edu.cn/qt/

下载安装cmake

QTCreator不自带cmake,下一个装就好

Qt5Config.cmake找不到

set(CMAKE_PREFIX_PATH "E:/Qt/Qt5.12.11/5.12.11/mingw73_64/lib/cmake/Qt5")

找到Qt5Config.cmake路径,添加上面这句

ui的头文件找不到

  • 假设生成的目标为Test,在CMakeLists.txt文件的最后一行添加:
target_include_directories(Test PRIVATE "${CMAKE_BINARY_DIR}/Test_autogen/include")#Test_autogen文件夹名字注意,Test要改成项目名!!

首次运行QT0xC0000135错误

编译成功后无法运行缺依赖

image-20210716193316105

学官网加环境变量是最好的

解决方案是

编译完成后,在qt里找到windeployqt.exe 运行

windeployqt.exe xxxx.exe
#XXXX.exe就是你编译后的exe

它会把依赖文件复制到编译文件夹内

然后再运行

上述步骤只需要进行一次,除非你引用了新的库

编译到链接库阶段报错moc_mainwindow.cpp:99: undefined reference to ‘imp

CMakeFiles\QTPlayer.dir/objects.a(mainwindow.cpp.obj): In function `MainWindow::MainWindow(QWidget*)':
E:/GitProject/QTPlayer/mainwindow.cpp:7: undefined reference to `__imp__ZN10QWebSocketC1ERK7QStringN18QWebSocketProtocol7VersionEP7QObject'
E:/GitProject/QTPlayer/mainwindow.cpp:7: undefined reference to `__imp__ZN10QWebSocketD1Ev'
CMakeFiles\QTPlayer.dir/objects.a(mainwindow.cpp.obj): In function `MainWindow::connectServer()':
E:/GitProject/QTPlayer/mainwindow.cpp:16: undefined reference to `__imp__ZN10QWebSocket9connectedEv'
E:/GitProject/QTPlayer/mainwindow.cpp:18: undefined reference to `__imp__ZN10QWebSocket4openERK4QUrl'
CMakeFiles\QTPlayer.dir/objects.a(mainwindow.cpp.obj): In function `MainWindow::onConnected()':
E:/GitProject/QTPlayer/mainwindow.cpp:23: undefined reference to `__imp__ZN10QWebSocket15sendTextMessageERK7QString'
CMakeFiles\QTPlayer.dir/objects.a(mainwindow.cpp.obj): In function `MainWindow::~MainWindow()':
E:/GitProject/QTPlayer/mainwindow.cpp:36: undefined reference to `__imp__ZN10QWebSocketD1Ev'

image-20210814211514401

三类问题,第一是在头文件声明的函数没写定义(网上说的)

(我不是这个问题,而且我觉得这不会导致编译直接过不了)

第二个是编译链同时装了msvc和mingw的库,混合编译了。最好的办法就是重装

https://stackoverflow.com/questions/39063110/lots-of-undefined-reference-in-qt-creator

第三种问题和用了websocket等插件类(它官网是这么描述的)的类功能,需要进行如下修改

find_package(QT NAMES Qt6 Qt5 COMPONENTS WebSockets Widgets REQUIRED)


target_link_libraries(QTPlayer PRIVATE Qt5::Widgets Qt5::WebSockets)

这类似于qt的pro文件里的

QT+=WebSockets
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CLion 是一款由 JetBrains 公司开发的集成开发环境(IDE),主要用于 C/C++ 开。它与 Qt 的集成并不直接,但是你可以在 CLion 中使用 Qt 进行开发。 在 CLion 中使用 Qt 进行开发,你需要进行以下操作: 1. 安装 Qt:首先,你需要安装 Qt 开发框架。你可以从 Qt 的官方网站下载并安装 Qt。安装完成后,记住你的 Qt 安装路径。 2. 配置 CLion:打开 CLion,进入 "Settings"(Windows 和 Linux 上是 "File" -> "Settings",macOS 上是 "CLion" -> "Preferences"),然后选择 "Build, Execution, Deployment" -> "CMake"。 - 在 "CMake" 选项卡中,点击 "Add" 添加一个新的 CMake 配置文件。 - 在弹出的窗口中,将 "Name" 设置为 "Qt"(或者任何你喜欢的名称),然后将 "Build type" 设置为 "Debug" 或 "Release"。 - 在 "CMake options" 字段中,添加以下内容: ``` -DCMAKE_PREFIX_PATH=<Qt 安装路径>/clang_64/lib/cmake ``` 这需要将 `<Qt 安装路径>` 替换为你实际的 Qt 安装路径。 3. 创建项目:在 CLion 中创建一个新的 C++ 项目或打开一个已有的项目。确保你的项目正确配置了 CMake。 4. 配置项目:在项目的根目录下,创建一个名为 `CMakeLists.txt` 的文件。在这个文件中,你需要添加 Qt 相关的配置。以下是一个示例的 `CMakeLists.txt` 文件: ```cmake cmake_minimum_required(VERSION 3.20) project(QtProject) set(CMAKE_CXX_STANDARD 17) find_package(Qt5 COMPONENTS REQUIRED Core Widgets) add_executable(QtProject main.cpp) target_link_libraries(QtProject PRIVATE Qt5::Core Qt5::Widgets) ``` 这个示例中使用了 Qt 的 Core 和 Widgets 组件,你可以根据自己的需要添加其他组件。 5. 开始开发:现在你就可以在 CLion 中使用 Qt 进行开发了。你可以创建 Qt 的窗口、使用 Qt 的库、连接信号和槽等。 这就是在 CLion 中使用 Qt 进行开发的基本步骤。希望对你有所帮助!如果你有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值