首页 > 编程语言 >CMake+Visual Studio构建Qt程序

CMake+Visual Studio构建Qt程序

时间:2023-05-08 22:23:27浏览次数:62  
标签:set CMake Qt project Visual VERSION CMAKE MainWindow

转载:https://www.codenong.com/cs106288798/

转载:https://zhuanlan.zhihu.com/p/400804242

一、编写代码文件

main.cpp

#include <QApplication>
#include "Mainwindow.h"


int main(int argc, char *argv[]) {
    QApplication app(argc,argv);
    MainWindow mainWindow;
    mainWindow.show();
    return app.exec();
}

MainWindow.h

#ifndef _MAINWINDOW_H
#define _MAINWINDOW_H

#include <QMainWindow>
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:

};

#endif // _MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) 
:QMainWindow(parent)
{
    resize(800,600);
}

MainWindow::~MainWindow()
{
   
}

 

CMakeLists.txt

cmake_minimum_required(VERSION 3.12.0)

project(helloQt)

set(VERSION_MAJOR 0)
set(VERSION_MINOR 0)
set(VERSION_PATCH 1)

set(CMAKE_PREFIX_PATH D:/Qt/Qt5.9.0/5.9/msvc2015)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

find_package(Qt5 REQUIRED COMPONENTS Core Widgets Gui)

set(project_headers MainWindow.h)
set(project_sources main.cpp MainWindow.cpp)

add_executable(${PROJECT_NAME} WIN32 ${project_headers} ${project_ui} ${project_sources})

target_link_libraries(${PROJECT_NAME}
    PUBLIC
    Qt5::Core
    Qt5::Gui
    Qt5::Widgets)

 

二、构建工程

 

解决方案已经生成:

 三、编译工程

 

四、添加Qt项目依赖的库文件

添加依赖文件

正确的做法是将所需的依赖文件添加至可执行文件(即HelloQt.exe)的目录下。

但是所需文件不只一个,手动查找复制非常麻烦,其实Qt提供了一个命令用来解决此问题,此命令叫windeployqt

 在Debug目录下打开cmd命令,windeployqt.exe 拖入cmd   然后空格输入helloQt.exe  按下回车就把依赖的文件拷贝到当前Debug目录下

 

 

 

五、双击helloQt.exe 可以正常运行了

 

标签:set,CMake,Qt,project,Visual,VERSION,CMAKE,MainWindow
From: https://www.cnblogs.com/chechen/p/17383326.html

相关文章

  • QT5 QJson与QString相互转换
    QT5QJson与QString相互转换QString转QJsonQJsonObjectMainWindow::QstringToJson(QStringjsonString){QJsonDocumentjsonDocument=QJsonDocument::fromJson(jsonString.toLocal8Bit().data());if(jsonDocument.isNull()){qDebug()<<"StringNULL&......
  • Qt隐式共享
    看了关于Qt隐式共享的介绍,很像之前学习的智能指针,复制对象的时候引用计数+1。(1) 深拷贝 : 即就是生成对象的一个完整的复制品;(2)浅拷贝:只是一个引用复制(比如仅仅复制指向共享数据的指针)。(3)隐式共享:也叫做写时复制(copyonwrite)。Qt中的很多C++类通过使用隐式数据共享......
  • Qt XML 读写
    QtXML读写XML简介XML(ExtensibleMarkupLanguage)是一种类似于HTML,但是没有使用预定义标记的语言。有许多基于XML的语言,包括XHTML、MathML、SVG、RSS和RDF(en-US)。XML声明<?xmlversion="1.0"encoding="UTF-8"?>注释<!--Comment-->实体像HTML一样,XML......
  • visual studio配置库相关
    一般来说一个库包含有三个三个文件夹:include,bin,lib1.其中include包含有这个库的头文件,这一项在项目的属性配置项->VC++目录->包含目录下添加即可2.lib文件夹中包含这个库所需要的静态库文件(静态库文件需要在程序编译时候运行)vs下编译的是在生成->重新生成XXX静......
  • 在linux上使用Qt开发动态库项目,怎么只生成一个so文件
     背景:在linux系统上,我们使用Qt开发动态库项目时,会默认生成四个文件:x.so 、x.so.1、x.so.1.0、x.so.1.0.0四个文件,只有一个真实的so库,剩下的三个都是链接文件。我们交付的时候,不可能发一堆文件出去,所以我们需要对Qt项目进行设置,保证输入的只有一个so文件......
  • QT Create 提示LINK1158:无法运行rc.exe
    使用everything搜索当前电脑上的rc.exe文件。以下是我电脑rc.exe的文件位置。由于我安装vs2015时目录没选到c:/programfile(x86)下(没安到默认目录),而是安装在D盘,那么就要使用D:\WindowsKits下的rc.exe文件。复制“rc.exe”和“rcdll.dll”文件,如果是x64复制x64文件夹下的俩......
  • linux GUI-QT6.5移植到Mini2440
    ----------------------------------------------------------------------------------------------------------------------------内核版本:linux5.2.8根文件系统:busybox1.25.0u-boot:2016.05开发板:Mini2440-----------------------------------------------------------------......
  • 【Visual Leak Detector】源码调试 VLD 库
    说明使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍VLD源码的调试。同系列文章目录可见《内存泄漏检测工具》目录目录说明1.VLD库源码调试步骤1.1设置为启动项目1.2设置调试程序1.3设置输出目录1.4拷贝vld依赖文件1.5加断点调试2.注意事项1.VLD......
  • cmake add to linker from CLI
    CMAKE_EXE_LINKER_FLAGSCMAKE_MODULE_LINKER_FLAGSCMAKE_SHARED_LINKER_FLAGSCMAKE_STATIC_LINKER_FLAGShttps://cmake.org/cmake/help/latest/command/target_link_options.htmlhttps://stackoverflow.com/questions/24532853/how-can-i-add-linker-flag-for-libraries......
  • Qt中信号与槽
    1.什么是信号:信号的种类很多,不同的控件触发不同的特定信号例如button的信号:(在父类中可以找到)信号与槽同时是通过关联使用的。  2.什么是槽?槽:用于关联某一个控件的信号,信号触发的时候将会执行槽函数(槽函数的关联分为手动关联和自动关联)槽的自动关联;在前面板选中对应的控......