window Cmake开发环境搭建

news2024/11/17 1:28:26

背景

最近的项目需要从linux转战至Windows。因为之前的项目都是在linux环境下开发的,代码也是通过CMAKE编译。攻欲善其事,必先利其器。首先要考虑的是如何在Windows环境下使用cmake编译代码。

另外一个就是IDE的选择了,相比于动辄 好几个G的Visual Studio来说,vscode 的安装以及多种功能强大的插件,所以还是还是选择它(只是因为习惯了。。。)。

现将过程记录如下,有需要的小伙伴可以参考。

cmake下载

CMake下载地址,这里我们选择 win-x86,下载完双击打开(注意:1.安装的时候选择中间的 for all user;2. 勾选add into path 加入环境变量)。
在这里插入图片描述
进入cmd终端,输入 cmake --verison 出现版本号即安装成功。默认安装路径:C:\Program Files\CMake\bin
在这里插入图片描述

MinGW-w64安装

MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。——来自百度百科

因为 MinGW-w64 可以编译生成 64位 或 32位 可执行程序,而 MinGW 只能编译生成32位可执行程序,现在已经很少用了。

MinGW-w64下载地址,进去后往下拉,当前最新版本是GCC-8.1.0,下载后解压,添加环境变量:系统->高级系统设置->环境变量->系统环境变量->新建 将自己解压后的路径添加进去即可,注意路径尽可能不要有中文。

在这里插入图片描述
进入cmd终端,输入 cmake --verison 出现版本号即安装成功,如果没有检查环境变量与自己解压的位置。
在这里插入图片描述

vscode插件安装

c++ 、 CMake、CMake Tools

在这里插入图片描述在这里插入图片描述

代码测试

目录结构:
在这里插入图片描述
hello.h

#ifndef __HELLO_H__
#define __HELLO_H__

#define HELLO  "hello, world!"

#endif // __HELLO_H__  

main.cpp

#include <iostream>
#include "../include/hello.h"

using namespace std;
int main(void) 
{
    cout << "Hello, world!" << endl;
    cout << HELLO << endl;
    return 0;
}

CMakeLists.txt

#CMake 最低版本号要求
cmake_minimum_required(VERSION 3.0.0)

#指定工程名
project(main VERSION 0.1.0)

#指定C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

#指定头文件所在的路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#在 ${PROJECT_SOURCE_DIR}/src 路径下搜索.cpp源文件
aux_source_directory(${PROJECT_SOURCE_DIR}/src ALL_SRCS)

#查找当前目录下的所有源文件
#并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)

#生成可执行文件 main.exe
add_executable(main ${ALL_SRCS})

在test目录下,

mkdir build
cd build
cmake -G "MinGW Makefiles" ../     # 生成Makefile文件
mingw32-make   

想要使用 make 也能编译。需要找到将bin目录下的mingw32-make.exe 复制一份 重新命名为make即可
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序中半屏打开其他小程序,开发者工具调试半屏

前言&#xff1a; 有需要是在当前小程序中&#xff0c;点击操作时&#xff0c;如果他没有注册会员&#xff0c;则强制去另一个小程序去注册会员&#xff0c;注册成功在返回&#xff0c;在这期间&#xff0c;打开另一个小程序是半屏来展示的。 实现效果&#xff1a; 在a小程序中…

Python七彩花朵

目录 前言 小海龟 花朵类 移动函数 画花朵 尾声 前言 来啦来啦来啦&#xff0c;小伙伴们快快来领取七彩花瓣雨吧&#xff01;&#xff01; 小海龟 老生常谈啦&#xff0c;在用python画樱花树前&#xff0c;我们先来了解一下turtle吧&#xff01; 小海龟(Turtle)是P…

19c ASM命令

发现19c和11g有些asm命令参数不完全一致&#xff0c;这里记录下&#xff0c;持续更新 ###kfod命令 查看asm磁盘 #kfod disksall 查看asm磁盘组 #kfod opgroups 特定diskgroup情况 #kfod statustrue gdata 查看磁盘与磁盘组的对应关系# kfod disksall groupdiskgroup ds…

JAVA开发(分布式部署微服务注册到Eureka出现registration status: 204错误)

问题背景&#xff1a; 将服务注册到多个Eureka出现有点的服务只注册到一个Eureka有点的服务可以注册到多个Eureka的问题&#xff0c;有的注册不上&#xff0c;报错&#xff1a;registration status: 204 Eureka界面&#xff1a; Eureka1&#xff1a; Eureka2&#xff1a; 从…

是德DSOX3014T MSOX3014T数字逻辑示波器

概述&#xff1a; keysight是德DSOX3014T MSOX3014T数字逻辑示波器8.5 英寸电容触摸屏让操作和归档变得更加简单&#xff0c;可以加速您的测试&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔离信号&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔…

Java Swing界面 示例代码+效果

1.Swing 轻量级组件&#xff0c;由java编写 2.常用窗口 2.1 JFrame JFrame是一个容器&#xff0c;是一个顶层窗口 常用方法&#xff1a; setSize(int width, int height); setLocation(int x, int y);//窗口距离屏幕左上角位置&#xff0c;默认&#xff08;0&#xff0c;0…

进行兼容性测试需要注意什么?

兼容性测试是一项非常重要的软件测试过程&#xff0c;它确保软件能够在各种不同的操作系统、浏览器和设备上正常运行&#xff0c;那进行兼容性测试需要注意什么&#xff1f; 1、确定测试范围 在进行兼容性测试之前&#xff0c;首先需要确定测试的范围。这包括要测试的操作系统、…

我收集的一些与学习相关的自用网站

目录 前言 一、学习教程网站 廖雪峰的官方网站 菜鸟教程网站 W3school网站 BEJSON校验网站 C语言中文网站 码农教程网站 JavaScript中文网站 CSS参考网站 Htmlcheatsheet 网站 练习CSS选择器网站 练习CSS Fiex网站 css自动生成流行布局和模式的集合的网站 交互式…

单例模式(三)

过气的&#xff0c;终究是过气了 上一章简单介绍了 UML 类图(二), 如果没有看过,请观看上一章 一. 单例模式 所谓的单例设计模式&#xff0c;就是采用一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c; 并且该类只提供一个取得其对象实…

Jmeter之单接口的性能测试

目录 前言&#xff1a; 性能指标 测试工具选择 Jmeter 获取性能指标 编辑接口信息 设置监听器 开始监控 收集监控数据 数据指标分析 总结&#xff1a; 前言&#xff1a; 服务端的整体性能测试是一个非常复杂的概念&#xff0c;包含生成虚拟用户&#xff0c;模拟并发&a…

Centos7 离线安装gcc gcc-

方法一&#xff1a;centos7 挂载本地iso yum源 cd /etc/yum.repos.d/ vim ios.repo [ios] nameios baseurlfile:///mnt/cdrom enable1 gpgcheck0 #镜像挂载本地 mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/ yum clean all yum makecache yum -y install gcc g…

助力工业智能生产质检,基于yolov5n/s/m不同精度系列模型开发构建热轧钢缺陷检测识别系统,对比分析性能差异

缺陷先关的智能检测应用和深度学习的结合是具有非常不错的应用前景的&#xff0c;比如&#xff1a;PCB缺陷检测、布匹瑕疵缺陷检测、瓷砖缺陷检测等等&#xff0c;在我之前的博文中对于缺陷领域相关的实践也有不少的项目开发实践&#xff0c;感性却的话可以自行移步阅读即可。 …

后端学vue2

工程创建 安装vue脚手架 安装好nodejs之后&#xff0c;安装vue脚手架 npm install -g vue/cli-g 参数表示全局安装&#xff0c;这样在任意目录都可以使用 vue 脚本创建项目安装时候使用vue ui 创建 安装 vue调试工具devtools devtools 插件网址&#xff1a;https://devtoo…

软件测试05:软件测试分类

软件测试05&#xff1a;软件测试分类 软件测试分类 按照开发阶段划分 单元测试 单元测试又称模型测试&#xff0c;是针对软件设计的最小单位——程序进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求…

华为参战!国产之光盘古大模型推:盘古Chat

盘古Chat是华为基于盘古大模型开发的一款多模态千亿级大模型产品&#xff0c;可以支持多种自然语言理解和生成的任务&#xff0c;如文本生成、问答、翻译、对话等。它是直接对标目前比较火爆的ChatGPT的产品&#xff0c;被认为是新一代的国产“AI”王炸。 盘古Chat预计将于今…

HTML5+CSS3+Vue小实例:仿制B站PC端首页的吃豆人轮播图

实例:仿制B站PC端首页的吃豆人轮播图 技术栈:HTML+CSS+Vue.js 字体图标库:font-awesome 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><…

功率放大器如何驱动水声声呐捕鱼?

第十五个“世界海洋日”&#xff0c;我们除了聚焦如何更好地保护海洋环境&#xff0c;对于海洋资源的可持续性利用&#xff0c;如何让“海洋宝藏”更好地造福人类&#xff0c;也是一个重要课题。想要发现更多的渔业资源&#xff0c;有项技术必不可少&#xff0c;那就是声呐技术…

Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

复现环境以及使用的工具 环境&#xff1a;使用Vulhub的漏洞环境 工具&#xff1a;bp和JNDIExploit-1-1.2&#xff0c;需要Java环境&#xff01;&#xff01; 攻击机和受害机配置 受害机&#xff1a;kali&#xff0c;ip地址为&#xff1a;192.168.150.135。使用vulhub漏洞环境…

无缝集合成功体验:打造高效的第三方API接口应用程序

欢迎来到我们的API接口 专业数据平台&#xff0c;今天我们将介绍如何使用库和框架API来简化开发流程&#xff0c;构建快速、可靠的应用程序。在本文档中&#xff0c;我们将重点介绍企业四要素API接口的作用&#xff0c;并提供一些示例代码可以帮助您更好地理解。 企业四要素是在…

统信下进行打deb安装包,ubuntu使用dpkg打deb包,tomcat的deb安装包制作

背景 由于安全需要&#xff0c;tomcat不能用解压缩版本&#xff0c;只能通过deb安装的方式使用。 制作tomcat的deb安装包 安装环境 使用 sudo apt-get install automake 将安装 autoconf{a} automake autotools-dev{a} 三个包。 使用 sudo apt-get install dh-make 将安装 …