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

前言:
前些日子,在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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值