Ubuntu下编译并运行C++代码
安装完Ubuntu后,(用户目录有时候也叫 home 文件夹或者主文件夹,它的路径是/home/username
,其中 username 就是我们登录 Linux 时使用的用户名。Linux 会在 home 目录下为每一个登录的用户创建一个文件夹,专门用来存放该用户使用到的配置文件、文本文档、图片、可执行程序等,以和其他用户区分开来。)就是一系列的输入命令:
1.首先输入命令pwd查看你所在的目录。pwd命令:查看当前路径。
2.输入命令ls查看在该目录下的所有目录。
3.输入命令cd 命令:切换当前目录至其他目录 .(cd 要进入的目录名)进入该目录下,(cd ..)返回上层目录,
cd /:加上斜杠表示是进入到根目录。
(1)cd 进入用户主目录
(2)cd ~ 进入用户主目录
(3)cd - 返回进入此目录之前所在目录
(4)cd .. 返回上一级目录
(5)cd ../..返回上两级目录
(6)cd !$ 把上个命令的参数作为cd 参数使用
4.进入目录后,输入命令 (mkdir 文件名)表示在该目录下创建新的文件
mkdir命令用来创建指定的目录的名称,要求创建的晕乎在当前目录中具有权限,并且创建的目录不能是当前目录中已有的。
mkdir [选项] [目录]
选项格式:
-m --mode=模式,建立目录的时候同时设置目录的权限;
-p --parents若所建立的上层目录不存在,并建立该目录。即确保目录名称存在,不存在的就建一个。
-v --verbose 每次创建新目录都显示信息
-h --help 帮助信息
例如:
创建一个空的目录hello
mkdir hello
递归创建多个目录
mkdir -p hello/word
创建权限为111的目录
mkdir -m 111 test
当前目录下创建test/test1,权限为111
mkdir -p-m 111 test/test1
5.mkdir hello后,输入命令cd hello进入该文件夹,现在就是建立可执行的C/C++文件啦,输入命令:touch+filename.c/filename.cpp,touch是建立文件的命令,.c/.cpp的后缀表示文件的类型。这里建立一个文件名为Hello.c的c文件;
A.使用Gedit编辑器(Gedit 是一款简单实用的文本编辑器,界面优雅,支持语法高亮,比 Vim 容易上手,它和 Windows 下的编辑器没有什么两样)
(如果你使用的是其它的 Linux 发行版,可能没有默认安装 Gedit,这个时候就得自己安装,具体步骤为:
$ sudo apt-add-repository ppa:ubuntu-on-rails/ppa #添加ubuntu的软件源
$ sudo apt-get update #更新软件列表
$ sudo apt-get install gedit-gmate #安装)
($ cd hello #进入 hello 目录,这是源文件所在的目录
$ touch hello.c #使用 touch 命令创建一个名为 hello.c 的空文件
$ gedit hello.c #使用 gedit 命令编辑 hello.c)这样就完成了源文件的创建,并能够使用 Gedit 编辑源文件了,(Ctrl+S
保存文件,就完成了源代码的编辑工作。此时需要关闭 Gedit 的窗口,$ gedit main.c关闭完窗口后这条
命令才算执行结束,才能在控制台继续输入其它命令)。
B.使用GCC编译器(使用 GCC 来编译C语言程序)GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过gcc
命令就可以将源文件编译成可执行文件
6.文件建立好后就是双击文件用Linux系统自带的Vim文本编辑器来写代码啦;
保存好c文件后接下来就是编译成可执行文件,输入命令:gcc Hello.c -o hello,gcc是编译c文件的命令,若是.cpp文件则用g++,-o后面的hello就是可执行的文件名(可随意起一个filename);
注意:如果没有在Hello.c文件中正确输入代码,或者完全没有输入任何东西是编译失败的。
最后,就是执行啦,输入命令:./hello,“./”是运行可执行文件的命令;
扩展:
(1)$ gcc hello.c #在 gcc 命令后面紧跟源文件名
打开 hello.cpp 目录(是个文件夹),会看到多了一个名为 hello.out 的文件,这就是最终生成的可执行文件。
这样就一次性完成了编译和链接的全部过程,非常方便。Linux 不以文件后缀来区分可执行文件,Linux 下的可执行文件后缀理论上可以是任意的, 这里的.out
只是用来表明它是 GCC 的输出文件,不管源文件的名字是什么,GCC 生成的可执行文件的默认名字始终是a.out
(2)如果不想使用默认的文件名,那么可以通过-o
选项来自定义文件名,例如:$ gcc hello.c -o hello.out (这样生成的可执行程序的名字就是main.out
。)
(3)因为 Linux 下可执行文件的后缀仅仅是一种形式上的,所以可执行文件也可以不带后缀,例如: $ gcc hello.c -o hello (这样生成的可执行程序的名字就是main
)
(4)通过-o
选项也可以将可执行文件输出到其他目录,并不一定非得在当前目录下,例如: $ gcc hello.c -o ./out/hello.out 或者 $ gcc hello.c -o out/hello.out
表示将可执行文件输出到当前目录下的out
目录,并命名为hello.out
。./
表示当前目录,如果不写,默认也是当前目录。 (注意:out 目录必须存在,如果不存在,gcc 命令不会自动创建,而是抛出一个错误。)
C.运行可执行程序
7.上面我们生成了可执行程序,要运行他,只用在控制台中输入程序的名字就可以,如下所示:
$ ./hello.out 即 $ ./a.out
./
表示当前目录,整条命令的意思是运行当前目录下的 a.out 程序。如果不写./
,Linux 会到系统路径下查找 a.out,而系统路径下显然不存在这个程序,所以会运行失败。
所谓系统路径,就是环境变量指定的路径,我们可以通过修改环境变量添加自己的路径,或者删除某个路径。很多时候,一条Linux命令对应一个可执行程序,如果执行命令时没有指明路径,那么就会到系统路径下查找对应的程序。
输入完上面的命令,按下回车键,程序就开始执行了,它会将输出结果直接显示在控制台上,
如果程序在其它目录下,运行程序时还要带上目录的名字,例如:
$ ./out/hello.out 或者 $ out/main.out
这个时候加不加./
都一样,Linux 能够识别出out
是一个目录,而不是一个命令,它默认会在当前路径下查找该目录,而不是去系统路径下查找,所以不加./
也不会出错。
注意,如果程序没有执行权限,可以使用sudo
命令来增加权限,例如:
$ sudo chmod 777 a.out
完整步骤:
$ cd hello.cpp #进入源文件所在目录
$ touch hello.c #新建空白的源文件
$ gedit hello.c #编辑源文件
$ gcc hello.c #生成可执行程序
$ ./hello.out #运行可执行程序
hello
$ #继续输入其它命令
Ubuntu下编译并运行C++代码相关推荐
- mjpg-streamer在Ubuntu下编译,运行
1.将USB摄像头插上,查看是否找到设备,输入: wp@ubuntu:/home/$ ls /dev/video* /dev/video0 2.安装必要的软件集: sudo apt-get ...
- 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...
- 一份简单的在 Linux下编译及调试 C 代码的指南
摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...
- java 编译 器 ide_在没有IDE的情况下编译和运行Java
java 编译 器 ide 最近一个名为" 不使用IDE编译Java软件包 "的Java subreddit线程提出了一个问题:"是否有一个命令将软件包内的一组Java文 ...
- 在没有IDE的情况下编译和运行Java
最近一个名为" 不使用IDE编译Java软件包 "的Java subreddit线程提出了一个问题:"是否有一个命令将软件包内的一组Java文件编译到一个单独的文件夹中( ...
- Ubuntu下编译SHTOOLS
SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在 ...
- Ubuntu下编译VeraCrypt
Ubuntu下编译VeraCrypt 1.安装yasm tar zxvf yasm-1.3.0.tar.gzcd yasm-1.3.0/./configure --prefix=/usr/local/ ...
- linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3
ubuntu下编译caffe Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包 ...
- 二级c语言编译完程序如何运行,计算机二级C语言辅导:C++环境下编译和运行c语言...
一 单个文件运行 1 打开vc++出现如图 2 从file菜单中选择"new"→c++source file如图 3 单击"--"命令按扭,在choose di ...
最新文章
- 21天mysql_把整个Mysql拆分成21天,轻松掌握,搞定(下)
- golang打包HTML为Android,使用Go开发Web服务,并打包html/js/css等静态资源文件
- CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装
- wince 6中硬键盘 输入法解决
- OPA initialization
- 也来谈谈这致命的手机充电器
- 即这样的WZSZF01代码是错误的
- 在pocket pc 2003上播放声音
- 精简指令集(MIPS为例)常用指令特点及其格式
- 在线小说阅读器app
- php实现银联扫码支付
- Docker实用指令整理
- 分享个网站首页弹窗代码
- keyshot渲染图文教程_keyshot基础图文教程,手把手教你用keyshot制作动画效果
- textview中划线效果
- markdown的checkbox综述
- SPSS多元线性回归结果分析
- 【通州爆料】通州台湖一村被征地建设轻轨L2线
- html5新年主题,HTML CSS3农历新年祝福语生成器
- 信号量——P、V操作、临界资源、临界区、进程同步