如何在终端编译C++代码

C++语言从编写-->执行整个过程。一般来讲,开发一个C++程序需要经过以下几步
1. 编写代码,
2. 编译器进行编译,compile    生成.o的可执行的二进制目标文件
3. 连接器进行连接。  链接代码文件,生成可执行.exe文件
4. 执行。

 


 

电脑:Mac OS系统

1.打开电脑的终端

2.$ mkdir cc     #创建一个cc的目录

3.$ cd cc    # 进入这个目录下

4.$ vi hello.cpp     # 建立一个hello.cpp的文件,并进入编辑C++代码的环境

//   测试程序如下:

#include<iostream>

using namespace std;

 int main()

{

        cout<<"Hello world!"<<endl;

        return 0;

}

 

5.按ESC然后按冒号,此时就可以输入:wq保存退出,返回到命令行模式

6.$ ls -l    # 查看已经编写的文件      $ more hello.cpp    是查看文件中的内容

7. $ g++ hello.cpp     #  g++  是编译       此时用$ ls -l 查看里面多了一个a.out 文件,即是生成的目标文件

8. $ ./a.out    # 用命令./ 执行.out 文件,就可以得到文件的输出了


 

保存命令:

按ESC键,然后再shift+:(输入冒号),此时在冒号的后面输入下面的命令(例如 :wq 保存退出) 就可以跳到命令行模式

:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑

 

 

 

g++和gcc的区别:

1、对于不同后缀的文件当作程序不同。

c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;对于.cpp后缀的文件,gcc和g++都会当做c++程序。

2、编译阶段调用不同,g++会调用gcc;

3、连接阶段方式不同,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。

gcc/g++在执行编译工作的时候,总共需要4步

1.预处理,生成.i的文件[预处理器cpp]

2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]

3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]

4.连接目标代码,生成可执行程序[链接器ld]

 


win下py代码,头文件是#-*-encoding:utf-8-*-,是告诉python解释器, 应该以utf-8编码来解释py文件, 对于python 2.6/2.7, 如果程序中包含中文字符, 又没有这一行, 运行将会报错. 但python3.1没有这行, 也会成功运行的。
linux下,头文件需要写c。
加上这行, 这个py就处于了可执行模式下, (当然是针对linux类的操作系统), 这个hint, 告诉操作系统要使用哪个python解释器来执行这个py. 在linux上执行一下命令 /usr/bin/env python ,就知道这行其实是call一下python解释器.



vi 模式下也可也编写其他代码,利于编写Python代码,只需要创建一个.py的问价,然后进入编写模式,此时要在编写文件的时候,加上头文件
我试了,在Linux下写Python文件时,需要加上的文件头有:
/usr/bin/env python
#-*-encoding:utf-8-*- # 不加这个会报错,报错内容如下

  File "try.py", line 3

SyntaxError: Non-ASCII character '\xe5' in file try.py on line 3, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

转载于:https://www.cnblogs.com/AlvinSui/p/8917038.html

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

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

相关文章

python画roc曲线需要什么数据,我如何根据这些数据绘制ROC曲线?

使用CNN训练的神经网络(CNN)进行以下精度测试&#xff1a;for root, dirs, files in os.walk(test_directory):for file in files:img cv2.imread(root / file)img cv2.resize(img,(512,512),interpolationcv2.INTER_AREA)img np.expand_dims(img, axis0)img img/255.0if…

Neuron最新研究:神经科学家测量球迷大脑对比赛的反应,试图挖掘人类的深层天性...

来源&#xff1a;brainnews2020年的1月27日早上&#xff0c;科比去世&#xff0c;父亲想办法安慰睡醒后的儿子&#xff1b;而在2020年11月26日早上&#xff0c;马拉多纳去世&#xff0c;儿子想办法安慰睡醒后的父亲。2020年&#xff0c;带走了全球无数球迷的青春。那么&#xf…

关于表情符号与UTF-8的探讨

4-23 现在无论原生还是网页端&#xff0c;表情符号绝大部分都可以正常显示&#xff0c;但是也有一部分是不能正常显示的。但存入到mysql的时候&#xff0c;不能够正常显示的表情符号&#xff0c;就会让mysql(utf-8)拜拜了。这个不仅仅是显示问题&#xff0c;很重要的一点是&…

约瑟夫环问题

编号为1&#xff0c;2&#xff0c;…&#xff0c;n的n个人按顺时针方向围坐在一张圆桌周围&#xff0c;每人持有一个密码&#xff08;正整数&#xff09;。一开始任选一个正整数m作为报数上限值&#xff0c;从第一个人开始按顺时针方向自1开 始报数&#xff0c;报到m时停止报数…

删除数据清理oracle表空间,oracle数据库删除无用表空间及数据文件过程

应用场景&#xff1a;html数据库服务器A下的一张数据库表重建过&#xff0c;而且数据已经迁移到新表空间下&#xff0c;现遗留了一些原有的表空间数据文件在服务器上&#xff0c;耗费资源&#xff0c;如图所示&#xff1a;linux 原数据库表对应的数据文件&#xff1a;sql迁移后…

mfc oninitdialog 中的hwnd == null_在SOUI中使用动态多语言切换

动态语言切换是很多国际化产品的需求&#xff0c;SOUI之前的版本支持静态多语言翻译&#xff0c;通过在程序启动时设置好语言翻译模块&#xff0c;在程序中打开的UI都会自动调用该翻译模块进行文字翻译&#xff0c;但是不支持运行进语言切换。最近几个网友都提到这个需求&#…

2020年中国面向人工智能“新基建”的知识图谱行业白皮书

全文共计1379字&#xff0c;预计阅读时间8分钟来源 | 艾瑞咨询&#xff08;经授权转载&#xff09;编辑 | 蒲蒲日前&#xff0c;认知智能国家重点实验室&艾瑞咨询联合发布《2020年面向人工智能“新基建”的知识图谱行业白皮书》。白皮书从善政、惠民、兴业、智融四个部分对…

JSP 简介(转载)

什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合H…

一元多项式的建立及加减

#include<stdio.h> #include<stdlib.h> typedef struct { int x; int y; struct *next; }node; void create1(node **phead,int i,int n) 一元多项式的建立 { int a,b; node *p1, *p2, *q; p2 *phead; p1 NULL; …

oracle中的in函数,Oracle中In函数的使用

SQL: "IN" FunctionThe IN function helps reduce the need to use multipleORconditions.译&#xff1a;IN函数有助于减少OR条件的复合使用。The syntax for the IN function is:译&#xff1a;IN函数的语法&#xff1a;SELECT columnsFROM tablesWHERE column1 in …

海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆

来源&#xff1a;数字化企业作为信息化发展到一定程度的必然结果&#xff0c;数字孪生正成为人类解构、描述和认识真实世界和虚拟世界的新型工具。从发展态势来看&#xff0c;数字孪生不仅是全新信息技术发展的新焦点&#xff0c;也是各国实现数字化转型的新抓手&#xff0c;还…

js整体缩小网页_SEO网页优化的原则是什么?

SEO网页优化的原则是什么?SEO优化对于网页的排名是非常重要的&#xff0c;排名高低直接影响到流量和转化&#xff0c;那么怎么优化呢&#xff0c;SEO网页优化的原则是什么?下面小编来告诉你SEO网页优化的原则。1、不要抄袭。因为独特的内容是所有搜索引擎都喜欢的&#xff0c…

Python基本数据类型以及字符串

基本数据类型 数字 int &#xff0c;所有的功能&#xff0c;都放在int里 a1 123 a1 456 - int 将字符串转换为数字 a "123" print(type(a),…

计蒜客 跳跃游戏

给定一个非负整数数组&#xff0c;假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。 例如&#xff1a;A [2,3,1,1,4]A[2,3,1,1,4] 能够跳跃到最后一个下标&#xff0c;输出true&#xf…

php 面相对象设计,PHP面向对象设计的规范

1.职责过程化的编码&#xff0c;控制代码的职责是判断文件格式&#xff0c;它判断两次不是一次。面向对象的编码&#xff0c;父类的职责是提供规范&#xff0c;判断格式也只有一次&#xff0c;并且不考虑细节。2.内聚内聚是一个模块内部各成分之间相关程度的度量。如果组件职责…

蒲慕明:今人眼中的大脑之美 | 书评

圣地亚哥拉蒙-卡哈尔&#xff08;Santiago Ramn y Cajal, 1852-1934&#xff09;来源&#xff1a; 知识分子撰文&#xff1a;蒲慕明现代神经科学起源于十九世纪末期&#xff1b;圣地亚哥拉蒙-卡哈尔&#xff08;Santiago Ramn y&#xff09;的神经解剖学研究和他提出的神经元理…

python成绩转换、百分制到五分制_设计一个程序,将从键盘上输入的百分制成绩转换成对应的五分制成绩并输出。90分以上为A,80~90分为B,...

展开全部编码思路&#xff1a;申明两个变量: 成绩cj为 浮点数float 且 取值范围为 [0,100] 闭区间内; pf为字62616964757a686964616fe58685e5aeb931333431353262符类型&#xff0c;接收最终分数评级的字母A,B,C,D,E中的一个。引导用户输入100分制的分数&#xff0c;并用cj接收…

数据库临时表空间设置

1、查看临时表空间 &#xff08;dba_temp_files视图&#xff09;&#xff08;v_$tempfile视图&#xff09;select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/1024/1024 file_size from v_$…

一元多项式的加减以及求导

采用链式存储结构&#xff0c;将两个线性链表表示的一元多项式相加减&#xff0c;求导并输出。 #include<stdio.h> #include<stdlib.h>typedef struct lnode{int coef; //系数 int index; //指数struct lnode *next; }node;node *Create() //头插法建立一元…

oracle 驱动表提示错误代码,oracle驱动表以及如何确定驱动表

驱动表普遍认为是由SQL语句的写法决定的&#xff0c;简单的说&#xff0c;就是FROM语句后面的表列表中的最后一个。由于SQL语句是从后向前进行分析&#xff0c;Oracle会根据FROM语句从后到前将各个表依次连接起来。SQL> CREATE TABLE T1 AS SELECT * FROM USER_TABLES;表已创…