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

CMake学习笔记-VSCode使用Cmake编译C++工程

环境

Win + MinGW + CMake + Git

单文件工程

# 1 指定最小版本号
cmake_minimum_required(VERSION 3.10)
# 2 指定工程名
project(Tutorial)
# 3 设置编译器路径
set(CMAKE_C_COMPILER "D:/ProgramPackage/mingw64/mingw64/bin/gcc.exe") 
set(CMAKE_CXX_COMPILER "D:/ProgramPackage/mingw64/mingw64/bin/g++.exe")
# 4 屏蔽 git/sh.exe 的影响# For MinGW make to work correctly sh.exe must NOT be in your path.# Run cmake from a she11 that does not have sh.exe in your PATH. 
set ( DCMAKE_SH= "CMAKE_SH-NOTFOUND")
# 5 设置工程版本号
project(Tutorial VERSION 1.0) 
# 6 设置编译语言标准
set (CMAKE_CXX_STANDARD 11)
set (CMAKE_CXX_STANDARD_REQUIRED True)
# 7 (可选)配置编译文件,可通过in文件替换代码中的宏定义
configure_file(TutorialConfig.h.in TutorialConfig.h) 
# 8 设置可执行文件对应源文件
add_executable(Tutorial tutorial.cxx)
# 9 包含头文件路径
target_include_directories(Tutorial PUBLIC"${PROJECT_BINARY_DIR}" )编译指令mkdir build
cd build
cmake -G "MinGW Makefiles" (Win环境下使用 "cmake .." 命令与MinGW不兼容)
cmake --build . 或 mingw32-make 

参考资料

官方教程1: https://cmake.org/cmake/help/latest/guide/tutorial/A%20Basic%20Starting%20Point.html

官方教程2:
https://cmake.org/cmake/help/book/mastering-cmake/cmake/Help/guide/tutorial/index.html

官方练习材料1:https://github.com/Kitware/CMake.git

官方练习材料2:https://github.com/Kitware/CMake/blob/master/Help/guide/tutorial/Step1/tutorial.cxx

http://www.lryc.cn/news/143691.html

相关文章:

  • redis相关
  • 【VRTK4.0运动专题】轴移动AxisMove(真实身体的移动)
  • 【vue2-helper插件】提供Mixins和组件库相关的类型提示、智能补全、跳转等功能~
  • 论文解读 | ScanNet:室内场景的丰富注释3D重建
  • 手写数字识别之网络结构
  • 《动手深度学习》 线性回归从零开始实现实例
  • Redis 命令
  • Linux网络编程:线程池并发服务器 _UDP客户端和服务器_本地和网络套接字
  • nvm安装electron开发与编译环境
  • 玩转Mysql系列 - 第7篇:玩转select条件查询,避免采坑
  • 启动程序结束程序打开指定网页
  • 从零开始学习 Java:简单易懂的入门指南之包装类(十九)
  • leetcode分类刷题:哈希表(Hash Table)(一、数组交集问题)
  • UML四大关系
  • forms组件(钩子函数(局部钩子、全局钩子)、三种页面的渲染方式、数据校验的使用)、form组件的参数以及单选多选形式
  • 跨专业申请成功|金融公司经理赴美国密苏里大学访学交流
  • 第十一章 CUDA的NMS算子实战篇(下篇)
  • R语言01-数据类型
  • 【网络基础实战之路】基于三层架构实现一个企业内网搭建的实战详解
  • C++11相较于C++98多了哪些可调用对象?--《包装器》篇
  • 栈与队列:常见的线性数据结构
  • android framework之AMS的启动管理与职责
  • Decoupling Knowledge from Memorization: Retrieval-augmented Prompt Learning
  • 腾讯云coding平台平台inda目录遍历漏洞复现
  • 无法正常访问服务器
  • 解决css英文内容不自动换行的问题
  • python语言学习
  • 1. 深度学习介绍
  • 【现场问题】oracle 11g 和12c 使用jdbc链接,兼容的问题
  • 嵌入式底层驱动需要知道的基本知识