VS2019中CMake项目的简单使用方法
在使用Visual Studio的时候很多人都应该碰过在使用scanf的时候会报错等问题,虽然把SDL检查关了就能解决,但是此方法在博主使用VS2019的时候,却有失灵的时候。所以决定在日常刷题的时候使用CMake项目来编译代码。因为CMake项目并不会因为使用scanf而报错。以下是博主使用CMake的一些总结,仅供参考。
1.建立CMake项目文件
在创建项目界面可直接搜索cmake找到创建项目。
为了方便使用可以选择将解决方案和项目放到同一个目录。
2.CMakeList的配置
在创建好项目后如果不出意外我们会看到以下三个文件。
我们可以把CMakeTest.h和CMakeTest.cpp文件删了,然后根据需要创建文件夹及相应的文件。博主以在项目目录下创建一个test文件夹和demo.cpp 文件作为示例。
右击项目名字选择 ->添加->新建文件夹
同理可以新建一个demo.cpp文件。
这样我们就创建好我们所需要的文件夹以及文件了。但是现在进行编码完成后会发现无法运行。原因是因为还没有配置CMakeList文件。
接下来我们进行CMakeList的配置。首先要把之前留下的配置信息(add_executable (CMakeTest “CMakeTest.cpp” “CMakeTest.h”))删了。
然后加入以下代码。记得Ctrl+S保存。
add_executable (demo "test/demo.cpp") #前面的demo是我们生成.exe可执行文件的名字。 后面加上要编译文件的绝对路径。
当正确配置好后可以在选择启动项处看到如下图所示选项。demo.exe正是刚才我们所定义的名字。
到此我们就可以开心的写代码了。下面写个最经典的hello world代码测试以下。
ps:关于修改cmake使用的c/c++语言标准,参考博客VS2019中CMake项目怎么指定c++语言标准
相关推荐
-
C/C++从零开始的cmake教程
C/C++从零开始的CMake教程 如果你有过在linux系统上源码安装某款软件的经历,那么肯定对这三部曲一点都不会陌生--配置(configure).编译(make).安装(make install).几乎每次都是机器人般的操作,这背后其实是make(准确地说应该是GNU Make)在默默为你干了不少活. 1.编译hello.c--单一源文件的编译 //hello.c #include <stdio.h> int main(){ puts("hello, world!")
-
超详细的cmake入门教程
什么是cmake 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MSnmake,BSD Make(pmake),Makepp,等等.这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别.这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译.而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作. CMake CMake附图 1 CMake就是针对上
-
实例分享cmake编译一个简单c++项目(demo)
下面通过一个小例子来说明cmake编译一个c++项目,生成可执行文件: 整理目录结构: CMake Lists.txt addlib build main.cpp 电脑上没有tree命令,也不大敢截图,将就着看看,其中build是cmake编译指定的路径,addlib下面也有一个头文件和源文件 ,还有一个CmakeLists.txt,可以看下: CMake Lists.txt library.cpp library.h 先看各个文件的代码: addlib/library.h: #ifndef
-
cmake 学习笔记
最近接触到一些工程上的代码,都是用cmake来编译的,每次看着CMakeLists.txt 就各种懵逼,决定从0 开始学习 1 set set(var hello) message(${var}) 输出 hello 其实并不是单单输出hello,还有很多其他信息,会生成很多文件 files 2 CMAKE_C(XX)_FLAGS 变量 CMAKE_C_FLAGS 存放的内容会被传给 C 编译器,作用在所有的编译组态上.如果希望只针对特定一种组态有效,可以设定 CMAKE_C_FLAGS_<编译组
-
VS2019中CMake项目如何指定c++语言标准
VS2019中CMake项目怎么指定语言标准 博主前几天在使用c++17新特性结构绑定时报错了,代码如下: #include<bits/stdc++.h> using namespace std; int main() { unordered_map<int, int> mmid; for (auto [a, b] : mmid) { cout << a << ' ' << b << endl; } return 0; } 后来查了一
-
win10下VSCode+CMake+Clang+GCC环境搭建教程图解
打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, 配置一下开发环境. 安装软件 CMake CMake是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程; 官网下载安装, 傻瓜式操作; 记得把安装目录下的bin文件添加到系统环境变量, 这个可以在安装的时候勾选, 勾选了就不用自己添加了; 检测是否安装
-
VS2019中CMake项目的简单使用方法
在使用Visual Studio的时候很多人都应该碰过在使用scanf的时候会报错等问题,虽然把SDL检查关了就能解决,但是此方法在博主使用VS2019的时候,却有失灵的时候.所以决定在日常刷题的时候使用CMake项目来编译代码.因为CMake项目并不会因为使用scanf而报错.以下是博主使用CMake的一些总结,仅供参考. 1.建立CMake项目文件 在创建项目界面可直接搜索cmake找到创建项目. 为了方便使用可以选择将解决方案和项目放到同一个目录. 2.CMakeList的配置 在创建好项
-
js项目中双向数据绑定的简单实现方法
目录 前言 发布订阅者模式 结果 调用 总结 前言 双向数据绑定 指的是当对象的属性发生变化时能够同时改变对应的UI,反之亦然.换句话说,如果我们有一个user对象,这个对象有一个name属性,无论何时你对user.name设置了一个新值,UI也会展示这个新的值.同样的,如果UI包含一个用于数据用户名字的输入框,输入一个新值也会导致user对象的name属性发生相应的改变. 许多流行的javascript框架,像Ember.js,Angular.js或者KnockoutJS都会把双向数据绑定作为
-
vs2019中使用MFC构建简单windows窗口程序
微软基础类库(英语: Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类. vs 2019 最新版,在设计上又有了很大的变化,并且其所有的服务,模块都是自定义搭建的,所以在一开始安装的时候,没有勾选mfc模块的话,是无法快速构成mfc应用的. vs2019下MFC模块的安装 首
-
VS2019中QT连接及使用的方法步骤
qt连接VS 连接前提是在下载qt的时候将 MSVC 2017装上 点击扩展 选择管理扩展 搜索qt 选择下载 之后下载结束并重新打开后 会弹出一个 QT option 将路径填进去 VS中qt的使用 在qt中可以直接添加信号与槽 在vs中使用是不一样的 直接新建一个qt 项目 打开 设计师界面 在vs中 的头文件中添加 槽函数 .cpp中实现 比较让人在意的是 构造函数中 ui.setupUi(this) 在qt中是ui->setupUi(this) 在qt中 选择这个 编辑信号/槽工具 点击
-
C++中sting类的简单实现方法
String 在C++的学习生涯我中发现String类的功能十分强大,所以我们是很有必要模拟实现它的,况且在面试的时候模拟实现一个String类也是面试官经常会考的,但是因为外界因素的限制我们是不可能模拟的和库里的string一致的(C++库里的string功能更强大),所以今天我们只模拟实现string的基本功能-构造函数,拷贝构造函数,析构函数,赋值运算符重载,运算符+=的重载,运算符[]的重载,c_str(得到一个C风格的字符指针,可操作字符串),Size,Push_Back,Insert
-
Python向Excel中插入图片的简单实现方法
本文实例讲述了Python向Excel中插入图片的简单实现方法.分享给大家供大家参考,具体如下: 使用Python向Excel文件中插入图片,这个功能之前学习xlwt的时候通过xlwt模块实现过.那时候是在公司做的尝试,印象中插入的图片最终缩小为了一个单元格,同时由于公司的加密系统如此实现了图片插入的Excel文件不能够再次打开. 这次试用XlsxWriter这个模块,推测这个模块应该是具有比xlwt强大的多的功能.代码实现如下: #!/usr/bin/python # -*- codding:
-
Mysql中调试存储过程最简单的方法
以前同事告诉我用临时表插入变量数据来查看,但是这种方法过于麻烦,而且Mysql没有比较好的调试存储过程的工具.今天google了下发现可以用select + 变量名的方法来调试 具体方法: 在你的存储过程中加入如下语句: SELECT 变量1,变量2; 然后用mysql自带的cmd程序进入mysql> 下. call 你的存储过程名(输入参数1,@输出参数);(注:这里帮助下新同学,如果你的存储过程有输出变量,那么在这里只需要加 @ 然后跟任意变量名即可); 即可发现你的变量值被打印到了cmd下
-
vscode中vue-cli项目es-lint的配置方法
本文主要介绍vscode中 vue项目es-lint的配置,有任何错误的地方欢迎大佬指出 开始 安装插件 如图所示: vscode设置 安装完成之后,到vscode中的 文件-->首选项-->设置 中 添加如下代码 "eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", "html",
-
iOS中读写锁的简单实现方法实例
目录 废话开篇 思考一.对于锁的类型的理解 思考二.读写锁的实现逻辑 思考三.简单封装读写锁,满足读写逻辑 总结 废话开篇 iOS 下的多线程的技术的应用衍生出了锁的机制,试想,如果 iOS 下没有多线程的概念,所有的代码都会在同步环境下执行,那么,也就不会产生争夺资源情况的发生,当然,也就没有办法利用多核的优势.所以,多线程的应用是广布的,而锁的应用是局部的,所以,二者应相辅相成,来达到提高运行效率的同时提高程序运行的稳定性. 思考一.对于锁的类型的理解 基本的三种锁的类型:互斥锁.自旋锁.读
随机推荐
- ASP.NET Sql Server安装向导(aspnet_regsql.exe)错误解决一例
- Python连接DB2数据库
- java并发之ArrayBlockingQueue详细介绍
- python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
- Swift的开发环境搭建以及基本语法详解
- JS库之Highlight.js的用法详解
- Python 网络编程说明第1/2页
- 正解SQLSEVER 2005 sql排序(按大小排序)
- MySQL数据库优化技术之索引使用技巧总结
- js获取元素相对窗口位置的实现代码
- javascript基础语法学习笔记
- JavaScript实现添加、查找、删除元素
- 基于Android自定义控件实现雷达效果
- iOS App引导页开发教程
- .net 上传文件前所未有的简单
- 基于C#实现简单离线注册码生成与验证
- Android短信接收监听、自动回复短信操作例子
- 域名查询系统用到的类
- iOS NSThread和NSOperation的基本使用详解
- JS实现倒计时图文效果