Windows 下CLion + Qt 开发环境的搭建

以前总只以为Qt 仅是 C 开发图形界面程序时的界面库,使用一段时间后发才发觉它的确是非常牛叉,不仅自身集成并扩展了大量的类库而是跨平台。但是Qt 自带的Qt Creator 集成开发环境总让觉得有点闹着玩似的。CLion 是JB 全家桶中C  集成开发工具,应该是除了VS 之外大家的最爱。今天花了时间尝试在CLion 集成Qt  ,记录如下:


  1. 在Windows 下使用 CLion 编译C 语言程序,需要先安装 mingw-w64 ,也可以使用Cygwin ; 安装好 g++  / gcc / cmake ; 

  2. 安装QT ,下载和安装QT 的时候要注意选择QT 支持MinGW , 不要只选 MSVS 否则是不行的。

  3. 注意版本适配,x86 与 x64 是不通用的


修改Windows 的环境变量,添加

CMAKE_PREFIX_PATH = D:\Qt\Qt5.10.1\5.10.1\mingw53_32


路径指定 Qt 安装路径下的 mingw 所在的目录,再次强制注意版本。


在创建Clion 中创建一个C++11 的项目,修改CMakeList.txt 文件

cmake_minimum_required(VERSION 3.9)
project(untitled1)

# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 11)

add_executable(untitled1 main.cpp)

#
# Qt5 相关配置
#######################################################################################

# Find the QtWidgets library
find_package(Qt5Core)
find_package(Qt5Widgets)

# Tell CMake to create the helloworld executable
#add_executable(helloworld WIN32 main.cpp)

# Use the Widgets module from Qt 5.
target_link_libraries(untitled1 Qt5::Widgets)


随手写一个最简单的Qt 窗口程序

#include <QApplication>
#include <QDebug>
#include <QWidget>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    qDebug() << "test CMake Qt";

    QWidget *qwidget = new QWidget;
    qwidget->show();

    return a.exec();
}


开始运行... 编译没有问题,链接生成EXE 也没有问题。

但是最后运行报错啦:

E:\CLionProjects\untitled1\cmake-build-debug-mingw\untitled1.exe


Process finished with exit code -1073741515 (0xC0000135)


如果到命令行直接运行,错误就很明显了...


20180224180946.png


是因为QT的动态链接找不到了

可以尝试在Windows 的环境变量 PATH 中添加 

D:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin

具体路径需结合自己安装时实际情况。


但仍然会一个问题,就是你的电脑中可能会存在其它版本的同名 dll 文件且也在PATH 搜索范围内,优先级比你还高。 理论上你可以把相关的DLL 文件拷贝到 exe 运行的当前目录下来使用。但是在IDE 中调试运行的时候,这样就很不方便了。

这时可以在 CLion 下配置当前这个项目的Build Config 

20180224181844.png


填写 Working Directory (  工作目录 ), 设置为我们Qt 的bin 目录。

再试试就应该没有问题啦...