学习使用vs2019编写一个Linux c++程序

2023-11-04

前言:
前些日子,在centos捣鼓C++程序,6.5版本的GCC4.4实在太旧了,不支持C++11,官方说得升级到GCC4.7以上。于是乎,尝试更新GCC,一顿操作猛如虎,一看战绩0/5。。。不成功,便成仁,一气之下,整了个Centos8.2。这下子,舒服了,舒服了,看着代码可算是有点现代C++的感觉咯。

后来,公司老哥推荐了VS2019编译LinuxC++,好奇心上来了,操作一番,终于成功。先来康康成果 ^ - ^:
在这里插入图片描述来看详细步骤:

1、操作环境
Win10+VS2019、VMware12+Centos8.2、FinalShell3.0
这里就不赘述VS和VMware以及Centos、跳板的安装了,教程很多。我们直接切入正题,gogogo!

2、创建VS的Linux工程

a.创建空解决方案:
在这里插入图片描述
在这里插入图片描述
b.添加新的linux工程
在这里插入图片描述
在这里插入图片描述
3、连接目标机linux
工具-选项-跨平台-连接管理器-添加:
在这里插入图片描述
连接成功后,查看centos的编译配置路径,可在此路径下查看工程文件:
在这里插入图片描述
4.准备完毕,来测试一段简单的单例程序:

a.准备两个类CStudentCStudentManage

/*
Student.h
*/
#pragma once
#include <string>
#include	<vector>
using namespace std;

class CHunter
{
public:
	CHunter(string nm,int idd,int agg)
		:name(nm),
		id(idd),
		age(agg)
	{
	}

public:
	string name;
	int id;
	int age;
};

/*
StudentManager.h
*/
#pragma once
#include "Hunter.h"

class CHunterManager
{
public:
	CHunterManager();
	~CHunterManager();

	void Init();
	void GetAllData(vector<CHunter>& arr);

private:
	bool m_bInited;
	vector<CHunter> m_arr;
};

CHunterManager* GetHunterMgr();

/********************分割线*********************/

/*
StudentManager.cpp
*/
#include "HunterManager.h"

CHunterManager::CHunterManager()
{
	m_bInited = false;
	Init();
}

CHunterManager::~CHunterManager()
{
}

void CHunterManager::Init()
{
	if (!m_bInited)
	{
		m_arr.clear();
		m_arr.push_back(CHunter("Gon", 1, 12));
		m_arr.push_back(CHunter("Killua ", 2, 12));
		m_arr.push_back(CHunter("Kula", 3, 15));
		m_arr.push_back(CHunter("Leiouli", 4, 18));
		m_bInited = !m_bInited;
	}
}

void CHunterManager::GetAllData(vector<CHunter>& arr)
{
	arr.clear();
	arr.assign(m_arr.begin(), m_arr.end());
}

CHunterManager* GetHunterMgr()
{
	static CHunterManager mgr;
	return &mgr;
}

b.主程序调用:

#include	<iostream>
#include "HunterManager.h"

void Show(vector<CHunter>& arr);

int main()
{
	vector<CHunter> arr;
	GetHunterMgr()->GetAllData(arr);
	Show(arr);

	cout << "\n\n" << endl;
	cin.get();
	return 0;
}

void Show(vector<CHunter>& arr)
{
	for (auto it:arr)
	{
		cout << "\t" << it.name << "\t" << it.age << "\t" << it.id << endl;
	}
}


c.编译成功:
在这里插入图片描述
现在来FinalShell看看linux上的文件:
在这里插入图片描述

四个文件对应VS工程下的四个文件:
在这里插入图片描述
d.运行既可以通过VS,也可以去Centos敲命令:
VS运行:
在这里插入图片描述
linux运行:
运行bin目录下生成的.out程序
在这里插入图片描述

e.修改源文件的问题。
重新编译后,猜测VS会向linux发送rm -rf ./SingleTon指令,然后再创建新的工程目录以及里面的文件。

感受:可视化果然还是舒服啊,VS不亏宇宙第一IDE。香,真香!

参考资料:
https://blog.csdn.net/mmmsss987/article/details/103518996

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习使用vs2019编写一个Linux c++程序 的相关文章

随机推荐

  • python与mongodb交互-->pymongo

    from pymongo import MongoClient 创建数据库连接对象 client MongoClient ip 27017 选择一个数据库 db client admin db authenticate python pyt
  • c++学习——类和对象

    类和对象 类和对象的基本概念 类的封装 尽量把成员属性设置为私有的 小练习 结构体和类的区别 圆的周长类案例 学生类的案例 汽车案例 立方体案例 点和圆案例 类和对象的基本概念 类是自定义数据类型 是C语言的结构体进化而成的 对象是类实例化
  • 硬件笔记(一)——DCDC典型电路分析

    此次小记分析的电路为SIM7600技术手册的推荐外部电源电路 LM2596内部包含150KHZ振荡器 输入电压范围最高可达40V 4 5V 40V 最高可提供3A的直流负载电流 输出电压可调范围1 23V 37V 现对此电路进行分析 1 D
  • 程序获取

    程序获取 机器学习 深度学习程序和数据获取方式 目录 程序获取 机器学习 深度学习程序和数据获取方式 程序获取方式1 程序获取方式2 程序获取方式3 程序获取方式4 程序获取方式5 程序获取方式6 程序获取方式1 私信博主或者博客底部联系博
  • jmeter线程组内的接口顺序执行解决办法

    一 压力测试场景分析 测试人员在使用jmeter对一个场景进行压力测试 在一个线程组内有多个接口时 测试人员想要测试在特定的时间段内一直循环该线程以测试服务器压力 但是jmeter在run线程组的时候 经常不会按照该线程组内的接口顺序执行
  • Ubuntu torch.cuda.is_available() 返回 False情况

    如果Ubuntu20 04 出现torch cuda is available 返回 False情况 解决方法 重新安装Pytorch Ubuntu20 04 CUDA 11 4 Pytorch配置安装 conda conda create
  • Hibernate 自动创建表

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 1 在 hibernate cfg xml 添加这句话 可以自动生成数据表
  • 开放集识别的最新进展总结(源于Recent Advances in Open Set Recognition: A Survey)

    摘要 在现实的识别 分类任务中 由于受到各种客观因素的限制 在训练一个识别器或分类器摘 0 摘要 原因与场景 在现实的识别 分类任务中 训练模型的时候可能并没有所有类别的训练集 因此 这样训练出来的模型在没有出现过的类出现时 一般会失效 解
  • 中国科学院大学工程管理与信息技术学院 2014年招收以下八个领域在职工程硕...

    中国科学院大学工程管理与信息技术学院2014年招收以下八个领域在职工程硕士 欢迎广大考生报考 一 专业领域介绍 招生领域 研究方向 学费 报考条件 学位 证书 学习方式
  • 数据结构与算法——栈的实现及模拟

    目录 一 栈的原理 二 栈的实现 1 栈的定义 2 栈的初始化 3 入栈 4 出栈 5 获取栈顶元素 6 栈的大小 7 判断栈是否为空 8 栈的销毁 一 栈的原理 堆栈 英语 stack 又称为栈或堆叠 是计算机科学中的一种抽象资料类型 只
  • Kafka核心设计与实践原理总结:进阶篇

    kafka作为当前热门的分布式消息队列 具有高性能 持久化 多副本备份 横向扩展能力 我学习了 深入理解Kafka 核心设计与实践原理总结 一书后 对其中主要的知识点进行了总结 便于理解和掌握kafka的原理和应用 在这里分享出来 希望也能
  • es常用curl命令

    说明 仅记录实验室测试过程 不作为官方文档使用 可能会有很多地方未能验证 因此无法进行技术兜底 需使用方多加验证测试 涉及到高危需走变更 目前测试版本均为651及以前版本 命令样例基于安全模式 如果是在非安全模式下 将命令中的参数 tlsv
  • .Net Core下简单的JWT黑名单中间件

    自从JWT认证方式在互联网上蔓延后 Session认证方式就被挤掉了一大半的生存空间 这里我们不讲JWT与Session两种方式的优缺点 我们只讲如何通过JWT的黑名单来阻止某些Token的登录 设置黑名单 也就是说要将Token写入某个存
  • gRPC:以 C++为例

    文章目录 1 gRPC 环境搭建 1 1 安装 cmake 1 2 安装 gcc gdb 1 3 安装 gRPC 1 4 protobuf 安装 1 5 测试环境 2 1 grpc 同步 2 1 定义服务 2 2 gRPC 服务端 2 3
  • 通讯录的实现

    ifndef TONGXUNLU H define TONGXUNLU H define MAX NAME 20 define MAX PHONE 11 define MAX PEO 1000 typedef struct PeoInfo
  • python肢体识别线条_【HUSKYLENS二哈识图】micro:bit视觉识别入门教程——06循“轨”蹈矩的麦昆...

    点击上方 蘑菇云创造 可以订阅哦 循 轨 蹈矩的麦昆 功能介绍 本项目利用 HuskyLens 的巡线功能 让麦昆 plus 按照地面上的线路轨道欢快地蹦跶 材料清单 知识园地 如果我们要让小车机器人按照地面上的线条移动 就需要一些传感器来
  • SentencePiece,subword-nmt,bpe算法

    BPE Byte Pair Encoding 双字节编码 2016年应用于机器翻译 解决 集外词 OOV 和罕见词 Rare word 问题 论文题目 Neural Machine Translation of Rare Words wit
  • [动态系统的建模与分析]9_一阶系统的频率响应_低通滤波器

    动态系统的建模与分析 8 频率响应 详细数学推导 G jw 滤波器 运放滤波器 3 反相同相比例放大电路 Multisim电路仿真 运放滤波器 2 运放反馈原理 运放滤波器 1 理想运放 虚短虚断 现代控制理论 11 现代控制理论串讲 完结
  • KDD'23

    大家好 我是kaiyuan 最近大模型LLM的各类信息有种乱花渐欲迷人眼的感觉 刷几篇KDD 23的文章冷静一下 今天分享阿里淘宝搜索的最新工作 发表在KDD 23上 Rethinking the Role of Pre ranking i
  • 学习使用vs2019编写一个Linux c++程序

    前言 前些日子 在centos捣鼓C 程序 6 5版本的GCC4 4实在太旧了 不支持C 11 官方说得升级到GCC4 7以上 于是乎 尝试更新GCC 一顿操作猛如虎 一看战绩0 5 不成功 便成仁 一气之下 整了个Centos8 2 这下