1、IDE环境:
VS2022/QT5.14
安装QT5.14,并将库配置到环境变量
环境变量下创建path路径,放置QT安装目录下的lib文件
D:\Qt\Qt5.14.2\5.14.2\msvc2017\bin
安装VS2022社区版,并安装QT VS Tools扩展
扩展内点击QTVersion,设置Version
VS中配置QT扩展和QT库引用
2、Cmark安装
官网下载Cmark安装包:https://cmake.org/
Cmark参考文档连接:https://cmake.org/cmake/help/latest/
点击exe安装

并将安装目录下bin文件配置到环境变量的path目录下:
C:\Program Files\CMake\bin
3、创建根目录下.cpp/.h/.ui文件
首先创建main.cpp文件,放置在项目最外侧目录下
在modules下创建源码,mainwindow,其中包含mainwindow.cpp/mainwindow.h/mainwindow.ui文件
因为小编习惯性将源码src单独按照模块分类放置


mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
/*主界面风格设计*/
this->setFocusPolicy(Qt::StrongFocus);
//设置无边框风格
//setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint);
setMinimumSize(1280, 852);
}
MainWindow::~MainWindow()
{
delete ui;
}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "./ui_mainwindow.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
main.cpp
#include <QApplication>
#include <iostream>
#include "mainwindow/mainwindow.h"
using namespace std;
QtMessageHandler defaultMessageHander_g;
int main(int argc, char *argv[]) {
QApplication app(argc,argv);
MainWindow mainWindow;
mainWindow.show();
//std::cout << "in func main" << std::endl;
return app.exec();
}
然后打开QT-Desger
创建一个mainwindow.ui的ui文件,放置在上面的文件夹内

放置好后开始做CmarkLists.tex文件
4、Cmark中CMakeLists.txt创建
将下面代码放置在txt中并命名好,放置在项目下同级目录内
cmake_minimum_required(VERSION 3.20)
set(ProjectName LeaperVison)
project(${ProjectName} VERSION 0.1 LANGUAGES CXX)
if(WIN32)
add_compile_options(/wd4996)
endif()
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(QT_VERSION_MAJOR 5)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Charts Network OpenGL AxContainer)
set(PROJECT_SOURCES main.cpp)
set(modules_root ${CMAKE_CURRENT_SOURCE_DIR}/Modules)
include_directories(${modules_root})
file(GLOB_RECURSE Modules_SOURCES ${modules_root}/*.h ${modules_root}/*.hpp ${modules_root}/*.cpp ${modules_root}/*.ui)
list(APPEND PROJECT_SOURCES ${Modules_SOURCES})
# 按目录结构加入文件
function(add_file file)
if(MSVC)
# 求出相对路径
string(REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/ "" rel_path_name ${file})
# 删除相对路径中的文件名部分
string(REGEX REPLACE "(.*)/.*" \\1 rel_path ${rel_path_name})
# 比较是否是当前路径下的文件
string(COMPARE EQUAL ${rel_path_name} ${rel_path} is_same_path)
# 替换成Windows平台的路径分隔符
string(REPLACE "/" "\\" rel_path ${rel_path})
if(is_same_path)
set(rel_path "\\")
endif()
# message(STATUS ${rel_path})
source_group(${rel_path} FILES ${file})
endif(MSVC)
endfunction()
foreach(file ${PROJECT_SOURCES})
add_file(${file})
endforeach()
add_executable(${ProjectName} ${PROJECT_SOURCES} ${QRC})
target_link_libraries(${ProjectName} PRIVATE
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Charts
Qt${QT_VERSION_MAJOR}::Network
Qt${QT_VERSION_MAJOR}::OpenGL
Qt${QT_VERSION_MAJOR}::AxContainer
)
if(MSVC)
option(ISSUE ON)
if(NOT ISSUE)
set_property(TARGET ${ProjectName} APPEND PROPERTY COMPILE_OPTIONS /Zi)
set_property(TARGET ${ProjectName} APPEND PROPERTY LINK_FLAGS /DEBUG)
endif()
target_compile_options(${ProjectName} PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/bigobj>)
#target_link_options(${ProjectName} PRIVATE "/SUBSYSTEM:CONSOLE")
endif()
set_target_properties(${ProjectName} PROPERTIES
${BUNDLE_ID_OPTION}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
注意项目名称和部分路径要手动修改
随后打开Cmark
选择刚在的项目路径,一般C++路径文件会放置在项目下,并新建一个build文件夹
camrk会自动扫描到CmarkLists.txt,然后读取里面的配置,和包含文件等等内容;

随后点击condigure配置,无报错后再点进generate生成项目,随后打开项目,Openobject

点击项目生成,编译即可;
2300

被折叠的 条评论
为什么被折叠?



