Visual Studio,第1个hello world,入门C++,分别编译一个可以在Windows和Linux下运行的程序

news2024/12/28 21:17:37

本人的VxTerm,是在Visual Studio 2022下编写的。

其它的语言工具是不是也可以那么方便的使用,本人并不得而知,至少本人能知道:对于我来说,Visual Studio可以让我觉得C/C++语言非常简单!

一、安装Visual Studio 2022:

自VS2017之后,VS的安装就变得非常的简单,只需要在Visual Studio的官网下载一个安装程序,就可以直接在网上安装完成。由于本人觉得非常没有难度,所以此处不述。自行百度。

二、第1个在Windows中可以运行的C++语言的"Hello world!"

创建新项目:

创建成功后,直接点击:本地Windows调试器,然后就可以得到一个

无意外情况下,就可以看到程序的运行后输入的结果:

编译:调试成功后程序开始运行后,其实就表示程序已经编译成功,在项目设定的输出目录里就已经编译好一个exe程序,找到这个程序双击它就可以运行了。

找到这个程序,双击它,可以看到屏幕一闪,程序运行结束后直接退出了。为了能看清程序运行结果,我们需要在cmd(或Windows11下的终端窗口、PowerShell窗口)中运行:

到这一步,其实没完,因为咱们现在只得到一个debug条件编译下的应用程序,一般的,在debug条件下,编译出来的程序可能是会受到环境组件的限制的,如程序的依赖等,所以,咱们需要把编译方式改成Release条件方式。

在程序的右边,一般都会有一个”解决方案资源管理器“,鼠标右键点项目/属性

在属性页,我们一般需要把”运行库“改成”多线程(/MT)“方式。

平台中的值与主界面中的调试平台的对应设置方式

这些设置值之间的关系,需要充分理解,才能在以后的编写/调试/编译过程中得到预期的结果。

关注我,我将在后续的文章中分享一些相关的经验,互相学习。

三、第1个可以在Linux下运行的C++语言编写的"Hello World!"

VS下可以编写并调用目标的Linux操作系统对程序进行编译,成功后可以得到在目标操作系统中运行的程序。

在此之前,需要准备一个Linux环境。由于本人使用的是Linux虚拟机,以下仅在目标Linux下实现。在Windows11中,也可以非常简单的使用WSL来得到Linux环境,并实现在Windows的Visual Studio编写C++程序然后在Linux下编译运行。

以下假设您已经有了一个可以折腾的Linux环境。

创建新项目:

VS会打开一个向导,引导您如何设置并连接到您的Linux环境中:

在此之前,同时也要求您在您的Linux环境中通过apt等命令安装gcc。

VS其实只是负责协助您编写C++代码,然后把代码编译成为.o文件,完成后会把编译出来的.o文件拷贝到您的Linux环境下,再调用Linux中你安装好的gcc来对你的代码文件进行连接/编译,最终编译成为工程项目中设置的输出文件。

第一次使用之前,VS会打开一个连接Linux的向导,协助您进行第1个连接,后续可以通过菜单中的”工具/选项/搜索 连接”,找到

连接管理器来创建和维护对Linux的连接。

以上操作成功后,转到main.cpp中,修改代码后,点击

然后就可以得到一个在Linux中运行的结果:

同时,您可以在Linux中的相应目录中找到已经编译好的输出文件:

运行它:在此处运行,可能需要使用./Con...这样的方式,否则可能会找不到这个程序。

当您在指定的目录中找到程序并运行成功,恭喜您!

再回过来看看程序代码:

我这里可以看到printf这个函数下面是显示“未定义标识符printf”的错误标识,但其实这个并不影响代码的编译,因为在Linux的环境下,其上面的 #include <cstdio> 这一行代码能被正确识别,并且其中的头文件中也能正确包含有这个函数的定义,所以最终能在Linux环境下正确的被编译成功。

---

陆续的,希望我能整理出来:我为什么能很容易的就凭着一个VS2022,在C/C++完全零基础的情况下,写出来一个自认为真的很复杂的VxTerm。

谢谢支持。

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

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

相关文章

D - Another Sigma Problem(ABC)

思路&#xff1a;我们可以处理一个后缀来记录当前数a[i]需要乘上多少&#xff08;类似于1110这样的&#xff09;&#xff0c;然后对于当前位来说&#xff0c;对答案的贡献还要加上(i - 1) * a[i]&#xff0c;因为a[i]还要做前(i - 1)个数的后缀。 代码&#xff1a; #include &…

基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 vivado2019.2和matlab2022a测试&#xff0c;结果如下&#xff1a; 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale …

数据中台:企业数字化转型的桥梁_光点科技

在数字化日益深入企业核心运营的今天&#xff0c;数据中台作为一个关键的信息化架构&#xff0c;正逐渐崭露头角&#xff0c;成为连接企业各部门、优化数据管理和推动业务创新的重要桥梁。 一、数据中台&#xff1a;连接与整合的桥梁 数据中台的核心作用在于连接与整合。传统的…

深入理解MySQL三大日志:redo log、binlog、undo log

前言 MySQL是一个功能强大的关系型数据库管理系统&#xff0c;它的高可靠性、高性能和易用性使得它成为众多企业和开发者的首选。在MySQL内部&#xff0c;为了保证数据的完整性、恢复能力和并发性能&#xff0c;设计了一套复杂的日志系统。其中&#xff0c;redo log、bin log和…

Android 13 系统自定义安全水印

效果 源码实现 frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java public final void showSafeModeOverlay() {View v LayoutInflater.from(mContext).inflate(com.android.internal.R.layout.safe_mode, null);WindowManager.Layout…

串口数据的发送(单词的发送)and UART原理协议---第九天

1.在中断函数中&#xff0c;定义一个数组给SBUF&#xff0c; i数组的偏移以便输入单词&#xff0c;&#xff1b; 用strstr&#xff08;&#xff09;函数来比较cmd输入的单词里面的 "en" , " se ";亮灯后i回来原来的位置0&#xff0c;清空cmd, UART 原理…

搭建私有仓库Nexus的流程以及npm包的开发和发布

搭建私有仓库 Nexus 的流程&#xff08;Ubuntu&#xff09;以及 npm 包的开发和发布 本文档是关于在 Ubuntu 上面搭建 Nexus&#xff0c;以及制作 npm 包并发布到 Nexus 的流程说明。 关于 Ubuntu Ubuntu 是一个基于 Linux 的操作系统&#xff0c;通常会用在服务器或者嵌入式…

Git团队协作机制

Git 团队协作机制 1.团队内协作 小故事&#xff1a;岳不群手里有华山剑法但是不完整&#xff0c;需要弟子令狐冲进行完善&#xff0c;岳不群将华山剑法推送&#xff08;push&#xff09;到代码托管中心&#xff0c;这样岳不群就有属于自己的远程库&#xff0c;令狐冲从远程库…

(文章复现)基于变异粒子群算法的主动配电网故障恢复策略

参考文献&#xff1a; [1]徐岩,张荟,孙易洲.基于变异粒子群算法的主动配电网故障恢复策略[J].电力自动化设备,2021,41(12):45-53.DOI:10.16081/j.epae.202108030. 1.基本原理 为提高主动配电网故障恢复的快速性和可靠性&#xff0c;提出一种基于变异粒子群算法的恢复策略。光…

六级翻译笔记

理解加表达 除了专有名词不能自己理解翻译&#xff0c;其它都可以 时态一般唯一 题目里出现有翻译为 客观存在&#xff1a; there be 单词结尾加er和ee的区别&#xff1a;er是主动&#xff0c;ee是被动 中文句子没有被动&#xff0c;也可以英文翻译为被动 中文的状语可以不是…

3月笔记本电脑行业线上市场销售数据分析

笔记本电脑市场在过去几年中经历了起伏&#xff0c;但总体上呈现出稳定增长的态势。特别是随着远程办公、在线学习等需求的增加&#xff0c;以及消费者对于便携性、高性能等方面的追求&#xff0c;笔记本电脑市场得到了进一步的发展。 据鲸参谋数据统计&#xff0c;线上平台&a…

在Tiled中制作动画瓦片图

什么是瓦片图&#xff1f;瓦片图是指用图块把游戏场景评出来 工具安装链接&#xff1a;Tiled | Flexible level editor 资源下载教程 资源下载&#xff1a;Mystic Woods - 16x16 Pixel Art Asset Pack by Game Endeavor 解压后得到一些资源 新建图块集合 Tiled的安装就不介绍…

2024最新从0部署Django项目(nginx+uwsgi+mysql)

云服务器 我这里用的是腾讯云免费试用的2H4Gcentos服务器&#xff08;后升级为2H8G&#xff0c;保险一点提高内存&#xff09; 因为网上很多关于django部属的教程都是宝塔啊&#xff0c;python版本控制器啊这种的&#xff0c;我也误打误撞安装了宝塔面板&#xff0c;但这里我…

AR人像滤镜SDK解决方案,专业调色,打造个性化风格

视觉内容已成为企业传达品牌价值和吸引用户眼球的重要载体&#xff0c;为满足企业对于高质量、多样化视觉内容的迫切需求&#xff0c;美摄科技凭借先进的AR技术和深厚的图像处理经验&#xff0c;推出了业界领先的AR人像滤镜SDK解决方案。 一、一站式解决方案&#xff0c;覆盖多…

C++语法|智能指针的实现及智能指针的浅拷贝问题、auto_ptr、scoped_ptr、unique_ptr、shared_ptr和weak_ptr详细解读

文章目录 1.自己实现智能指针智能指针引起的浅拷贝问题尝试定义自己的拷贝构造函数解决浅拷贝 2.不带引用计数的智能指针auto_ptrscoped_ptrunique_ptr&#xff08;推荐&#xff09; 3.带引用计数的智能指针模拟实现引用计数shared_ptr和weak_ptr循环引用&#xff08;交叉引用&…

Maven 的仓库、周期和插件

优质博文&#xff1a;IT-BLOG-CN 一、Maven 仓库 在Maven的世界中&#xff0c;任何一个依赖、插件或者项目构建的输出&#xff0c;都可以称为构建。Maven在某个统一的位置存储所有项目的共享的构建&#xff0c;这个统一的位置&#xff0c;我们就称之为仓库。任何的构建都有唯一…

信息系统架构模型_2.面向服务架构(SOA)模式

前面讲的客户机/服务器模式&#xff0c;无论多少层的C/S软件结构&#xff0c;对外来讲&#xff0c;都只是一个单结点应用&#xff08;无论它由多个不同层的“服务”相互配合来完成其功能&#xff09;&#xff0c;具体表现为一个门户网站、一个应用系统等。而多个单点应用相互通…

蓝桥杯单片机之模块代码《多样点灯方式》

过往历程 历程1&#xff1a;秒表 历程2&#xff1a;按键显示时钟 历程3&#xff1a;列矩阵按键显示时钟 历程4&#xff1a;行矩阵按键显示时钟 历程5&#xff1a;新DS1302 历程6&#xff1a;小数点精确后两位ds18b20 历程7&#xff1a;35定时器测量频率 历程8&#xff…

docker部署minio和业务服务因变更minio密码导致访问不到图片的问题

问题起因 业务application和minio都是docker部署。按部署规则minio的环境变量中设置了MINIO_ROOT_USER和MINIO_ROOT_PASSWORD。这样就可以用这套用户名密码登录minio了。而我的application中是通过api访问minio获取资源URL&#xff0c;提供给前端的。所以在application的环境变…

SVN 合并到 Git 时有文件大于 100 M 被限制 Push

如果有文件大小大于 100M&#xff0c;GitHub 是会被限制推送到仓库中的&#xff0c;大概率情况会显示下面的错误&#xff1a; remote: Resolving deltas: 100% (3601/3601), done. remote: error: Trace: aea1f450da6f2ef7bfce457c715d0fbb9b0f6d428fdca80233aff34b601ff59b re…