CMake 构建 Qt 项目 (Linux)

我们可以使用qmake来编译Qt项目,而qmake是专门为Qt应用量身打造的构建工具,但这里我们使用CMake去构建Qt项目,毕竟CMake更强大,而且应用范围更广。

环境

Linux : Deepin 15.9
Visual Stdio Code
CMake 3.10.0
Qt5.12.0

注意:VSCode需要安装一下插件:

  • C/C++
  • CMake
  • CMake Tools
  • CMake Tools Helper

项目源码

这里既然已经打算使用CMake构建Qt,所以没有在项目中添加*.ui文件,当然,你也可以添加它们,项目同样能够正常构建;

// 项目结构
// 源码下载:https://github.com/AZMDDY/vscode_cmake_qt.git
.
├── build
├── CMakeLists.txt
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
└── README.md
// main.cpp
#include 
#include 
#include "mainwindow.h"
int main(int argc, char **argv) {
     
    QApplication app(argc, argv);
    MainWindow m;
    m.show();
    qDebug() << "hello vs qt";
    return app.exec();
}
// mainwindow.cpp
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent) {
     

    }

MainWindow::~MainWindow() {
     
    
}

// mainwindow.h
#include 

class MainWindow : public QMainWindow {
     
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
};

如果项目中有*.ui文件,那么需要在add_execuable()中加入它们。例如: add_execuable(${PRO_NAME} ${DIR_SRCS} mainwindow.ui)

CMakeLists.txt

# cmake的最低版本要求
cmake_minimum_required(VERSION 3.1.0)

# 设置项目名称
set(PRO_NAME vsc_qt)

project(${PRO_NAME})

# 在相应的构建目录中查找头文件
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# 设置CMake在需要时自动运行moc
set(CMAKE_AUTOMOC ON)

# 从Qt设计师文件列表中创建代码
set(CMAKE_AUTOUIC ON)

# 设置Qt的环境变量
set(CMAKE_PREFIX_PATH /home/azmddy/Qt/5.12.0/gcc_64)

# 搜索当前目录下的源文件
aux_source_directory(. DIR_SRCS)

# 寻找Qt5的库
find_package(Qt5 COMPONENTS Widgets REQUIRED)

# 设置可执行文件
add_executable(${PRO_NAME} ${DIR_SRCS})

# 链接Qt5的库
target_link_libraries(${PRO_NAME} Qt5::Widgets)

运行结果

CMake 构建 Qt 项目 (Linux)_第1张图片

你可能感兴趣的:(Linux,c++,VSCode,Qt,CMake,VSCode,Linux)