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

本人的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.hqwc.cn/news/687344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue面试经验2

Vue 你说你在vue项目中实现了自定义指令&#xff0c;如何实现 全局指令在main.js入口文件中实现 使用方法&#xff1a;v-指令名称 每个钩子函数都有两个参数&#xff08;ele,obj&#xff09; ele:绑定指令的元素 obj:指令的一些信息&#xff08;比如绑定指令的值&#xff0c…

带有-i选项的sed命令在Linux上执行成功,但在MacOS上失败了

问题&#xff1a; 我已经成功地使用以下 sed 命令在Linux中搜索/替换文本&#xff1a; sed -i s/old_string/new_string/g /path/to/file然而&#xff0c;当我在Mac OS X上尝试时&#xff0c;我得到&#xff1a; command i expects \ followed by text我以为我的Mac运行的是…

如何用python的Turtle绘画?

目录 一、画一个圆和正方形 二、简单的方式来画一个美女 三、Turtle是一个用于绘制图形的标准库 一、画一个圆和正方形 import turtle# 创建一个图形窗口 window turtle.Screen() window.bgcolor("white")# 创建一个海龟画笔 pen turtle.Turtle() pen.shape(&q…

Unity使用ToggleGroup对多个Toggle进行管理时,初始化默认选项失效的问题

问题描述&#xff1a; 在unity脚本的OnEnable中用代码设置Toggle集合中的其中一个对象的ison时&#xff0c;发现并没有根据设置发生变化。但是该Toggle的OnValueChange却发生过变化。 如果使用协程等待0.01s,那么对应组件的ison的修改才能生效&#xff0c;但是逐帧分析的话会发…

SDXL-ControlNet模型MistoLine:引领高精度图像生成的革新高质量图像模型

在数字艺术的浩瀚星空中&#xff0c;MistoLine犹如一颗璀璨的新星&#xff0c;以其对SDXL-ControlNet技术的深度整合&#xff0c;展示了对多种线稿类型的非凡适应能力&#xff0c;并在高精度图像生成领域树立了新的标杆。 GitHub&#xff1a;https://github.com/TheMistoAI/Mi…

SOLIDWORKS参数化设计的作用

SOLIDWORKS参数化设计软件&#xff0c;主要解决加工制造型企业普遍存在的系列化产品设计周期长和出图效率低。重复工作多、人员工作强度大的问题。传统的设计模式下大规模定制型产品结构设计周期长&#xff0c;问题多&#xff0c;以及大量重复性工作让工程师疲于应对&#xff0…

sql-labs通关详解(1-10)

1.less-1 1.判断类型 由此判断是字符型漏洞由单引号闭合。 2.判断 字段个数 http://192.168.190.145/sqli-labs/Less-1/?id1 order by 3-- 3.获取数据库名 -1 union select 1,2,database()-- 4.获取表名 -1 union select 1,2,group_concat(table_name) from information_…

Spring、SpringMVC

一、Spring框架中的单例Bean是线程安全的吗&#xff1f; 【默认单例的情况下】Spring Bean并没有可变的状态&#xff08;如Service类和DAO类&#xff09;&#xff0c;即只能查不能改&#xff0c;所以没有并发问题&#xff0c;所以某种程度上来说Spring的单例Bean是线程安全的。…

在线旅游网站,基于 SpringBoot+Vue+MySQL 开发的前后端分离的在线旅游网站设计实现

目录 一. 前言 二. 功能模块 2.1. 登录界面 2.2. 管理员功能模块 2.3. 用户功能模块 三. 部分代码实现 四. 源码下载 一. 前言 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;旅游网站当然…

【北京迅为】《iTOP-3588开发板从零搭建ubuntu环境手册》-第2章 获取并安装Ubuntu操作系统

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

Spring框架学习-详细

文章目录 1. Spring简介1.1 面向接口编程1.2 Spring简介1.3 Spring体系结构 2 Spring IoC - 基于XML2.1 Sping框架部署&#xff08;IoC&#xff09;2.2 Spring IoC使用2.3 IoC和DI2.4 DI依赖注入Spring容器通过反射方法实现属性注入有三种方式1. set方法注入2. 构造器注入 2.5 …

uni-appH5Android混合开发三 || uni-app调用Android原生方法的三种方式

前言&#xff1a; 关于H5的调用Android原生方法的方式有很多&#xff0c;在该片文章中我主要简单介绍三种与Android原生方法交互的方式。 uni-app跨平台框架介绍和快速入门 uni-app跨平台框架介绍和快速入门 一、H5方法调用android原生方法 H5 Android开发规范官方文档&#…