当前位置: 首页 > news >正文

镇江网站建设优化注册城乡规划师教材

镇江网站建设优化,注册城乡规划师教材,塘沽做网站比较好的,光谷 网站建设公司CMake 使用概述一、概述二、创建Qt CMake 项目三、简单介绍1. 引入Qt的库2.Qt CMake 引入第三方库3. Qt CMake 项目目录四、使用案例一、概述 CMake是一个简化跨不同平台开发项目的构建过程的工具。对C来说其实就是生成一个文件,文件里面描述了,怎么组织…

CMake 使用概述

  • 一、概述
  • 二、创建Qt CMake 项目
  • 三、简单介绍
    • 1. 引入Qt的库
    • 2.Qt CMake 引入第三方库
    • 3. Qt CMake 项目目录
  • 四、使用案例

一、概述

CMake是一个简化跨不同平台开发项目的构建过程的工具。对C++来说其实就是生成一个文件,文件里面描述了,怎么组织这个工程,用编译器怎么编译这个项目之类的,这个CMake 本身不是一个编译器,其实就是生成一个让编译器能读懂编译流程的文件工具。让CMake自动生成构建系统,例如Makefiles和Visual Studio项目文件。CMake是一个第三方工具,有自己的文档。这里就是介绍一下在Qt 5中使用CMake 3.5 系列,反正是 CMake 3系列。

二、创建Qt CMake 项目

  1. 创建CMake 项目
    其实和 qmake 创建项目一个流程,只是在选择 build 系统的时候选择 CMake 就可以啦,这里演示的是创建一个 界面软件的流程
    在这里插入图片描述

  2. 生成的工程目录如下
    在这里插入图片描述

  3. CMake 的文件定位
    其实我们所谓的写CMake其实就是 编写这个 CMakeLists 文件
    在这里插入图片描述

三、简单介绍

这里就是简单介绍一下这个 CMakeLists 的一些指令。

# 这里就是说 cmake的版本
cmake_minimum_required(VERSION 3.5)# 这里project 就是这个项目的名称,以及使用的编程语言,项目名称但不是这个生成可执行文件的名称哈
project(ssss LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)# 设置 uic moc rcc 自动编译,其实就是类似qmake 一样,把Qt自己的C++特性转换为标准c++内容
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)# 支持c++ 11标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)# 就是找Qt 的模块
find_package(Qt5 COMPONENTS Widgets REQUIRED)# 这里是一些安卓之类的可不管
if(ANDROID)add_library(TestCmakeApp SHAREDmain.cppmainwindow.cppmainwindow.hmainwindow.ui)
else()
# 这里的 add_executable就是生成可执行文件,第一个是可执行文件名,后面就是源文件之类的add_executable(TestCmakeAppmain.cppmainwindow.cppmainwindow.hmainwindow.ui)
endif()# 链接一些动态库,这个第一次就是可执行文件名,后面就是一些库
target_link_libraries(TestCmakeApp PRIVATE Qt5::Widgets)
project(ssss LANGUAGES CXX) #运行截图如下

在这里插入图片描述

其实Qt 使用CMake 我个人使用的时候至少要几个功能:

  • 一、引入第三方库
  • 二、组织项目结构

有这些其实就是完全够用的

1. 引入Qt的库

注意要点就是 find_package() 引入包 target_link_libraries()来链接库 下面用示例来说明

  1. find_package() 理解
    find_package(Qt5 COMPONENTS 模块名 REQUIRED) 这里的模块名 可以是大写的也可以小写,我试验过了,都可以,但还是推荐首字母大写就行。模块名其实和qmake的一样,以 Qt SQL 模块举例,这个模块名就是下面 QT += sql 里面的 。sql
    也可以用 find_package(Qt模块名 REQUIRED)
    在这里插入图片描述
# find_package() 引入包# 写法1 -> 合并写法 推荐写这个
find_package(Qt5 COMPONENTS Core Widgets Sql Script SerialPort REQUIRED)# 写法2 -> 分离写法
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5SerialPort REQUIRED)
find_package(Qt5Sql REQUIRED)
find_package(Qt5Script REQUIRED)# 注意不能这么写,这种是错的
find_package(Qt5Core Qt5Widgets REQUIRED)
  1. target_link_libraries() 理解
    target_link_libraries(Hello PRIVATE Qt5::Widgets),第一个 Hello 就是可执行文件名,后面 PRIVATE 是修饰词可不管,后面的 Qt5::Widgets 就是链接的模块库的名字,后面可以继续追加库名
# 都是可以用的
target_link_libraries(Hello Qt5::Widgets)
target_link_libraries(Hello PRIVATE Qt5::Widgets)
target_link_libraries(Hello PRIVATE Qt5::Core Qt5::Widgets Qt5::Sql Qt5::SerialPort Qt5::Script)

这里写的一些变量的路径可以在 Qt Build 里配置的
在这里插入图片描述

2.Qt CMake 引入第三方库

3. Qt CMake 项目目录

四、使用案例

cmake_minimum_required(VERSION 3.5)project(CMakeAPP LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)file(GLOB_RECURSE SOURCES "*.cpp" "*.cxx" "*.cc")
file(GLOB_RECURSE HEADERS "*.h")
file(GLOB_RECURSE RESOURCES "*.qrc")
file(GLOB_RECURSE FORMS *.ui)set(SRCS ${SOURCES} ${HEADERS} ${RESOURCES} ${FORMS})source_group("Header" FILES ${HEADERS})
source_group("Sources" FILES ${SOURCES})
source_group("Ui" FILES ${FORMS})
source_group("Resource" FILES ${RESOURCES})find_package(Qt5 COMPONENTS Core Widgets  Sql Script  SerialPort REQUIRED)#find_package(Qt5Core REQUIRED)
#find_package(Qt5Widgets REQUIRED)
#find_package(Qt5SerialPort REQUIRED)
#find_package(Qt5Sql REQUIRED)
#find_package(Qt5Script REQUIRED)foreach(plugin ${Qt5Network_PLUGINS})get_target_property(_loc ${plugin} LOCATION)message("Plugin ${plugin} is at location ${_loc}")
endforeach()add_executable(CMakeAPPmain.cppMainWindow.cppMainWindow.hMainWindow.ui./Part1/NewWindow.cpp./Part1/NewWindow.h./Part1/NewWindow.ui./Part2/form.cpp./Part2/form.h./Part2/form.ui
)target_link_libraries(CMakeAPP PRIVATE Qt5::Core Qt5::Widgets Qt5::Sql Qt5::SerialPort Qt5::Script)
http://www.hyszgw.com/news/7610.html

相关文章:

  • 基层组织建设部 网站公司网页
  • 网站赌博做员工犯法吗看颜色应该搜索哪些词汇
  • 温州网站建设公司有哪些google免登录网页版
  • 用js做跳转到其他网站什么是外链
  • 海报设计模板网站今日桂林头条新闻
  • 网站建设指南百度线上推广
  • wordpress 浏览次数seo分析报告怎么写
  • 大型网站的制作百家号自媒体平台注册
  • 淘宝客怎样做自己的网站推广网站流量数据
  • wordpress查版本号百度seo软件曝光行者seo
  • 专门做详情页的网站长沙线上引流公司
  • 做网站还是做公众号百度公司地址在哪里
  • 信息技术网站建设教案营销型网站是什么意思
  • 北京网站制作的公司哪家好班级优化大师是干什么用的
  • 网站建设意向表百度免费推广方法
  • 手机网站懒人模板一键优化清理加速
  • wordpress优化方案长沙靠谱关键词优化公司电话
  • 哪里做网站排名免费网站安全软件大全
  • 会员管理系统功能百度seo在线优化
  • 建设银行洛阳市分行网站互联网广告价格
  • 南通网站定制企业网站优化排名
  • 做互助盘网站下载应用商店
  • 建网站需要什么资质怎么建网页
  • SEO优化网站建设价格上海seo优化公司kinglink
  • b2b2c网站建设方案网站排名系统
  • 东莞网站推广哪些seo推广百度百科
  • 国内做外卖的网站有哪些百度广告联盟赚广告费
  • 海口手机端建站模板临沂头条新闻今日头条
  • 搜索引擎快速优化排名哈尔滨百度网站快速优化
  • 做网站用b s和c s福州seo网站管理