Ubuntu系统---终端下用g++进行c++项目
Ubuntu系统---终端下用g++进行c++项目
目录
一、编译工具(g++/gcc)和编辑工具(vim/gedit)
二、C语言 的编译与运行
三、C++语言 的编译与运行
四、gcc/g++的详细过程
“一、二、三”是在当前文件夹下,编译一个文件为一个可执行文件的例子。对于编译多个文件为一个可执行文件,以及如何创建一个工程和编译一个工程(一个大点的工程不止一个.cpp,还有.h,...),后续在学、在作笔记。
正文
一、编译工具(g++/gcc)和编辑工具(vim/gedit)
在ubuntu环境下对C/C++进行编译首先保证ubuntu系统中包含编译工具(g++/gcc)和编辑工具(vim),C语言和C++对应的编译器:gcc -> C , g++ -> C++ 。
如果环境中不存在可以在终端中输入以下命令进行安装:
sudo apt-get install build-essential
sudo apt install vim
sudo apt-get install gcc
sudo apt-get install g++
二、C语言 的编译与运行
步骤:(1)写.c文件; (2)编译.c文件; (3)运行可执行文件
(1)写.c文件
1).c文件hello.c代码如下:
#include<stdio.h>
int main()
{
printf("Hello world !\n");
return ;
}
(2)编译.c文件
在当前路径下编译.c文件:
gcc -o hello hello.c
编译完成后可以看到在和hello.c相同目录下有一个hello的可执行文件。
(3)运行可执行文件
在当前路径下运行编译后的可执行文件:
./hello
(注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行)
三、C++语言 的编译与运行
步骤:(1)写.cpp文件; (2)编译.cpp文件; (3)运行可执行文件
(1)写.cpp文件
# .cpp文件hello.cpp代码如下:
#include<iostream>
using namespace std;
int main()
{
cout << "Hello world !" << endl;
return ;
}
(2)编译.cpp文件
在当前路径下编译.cpp文件:
g++ -o hello hello.cpp
编译完成后可以看到在和hello.cpp相同目录下有一个hello的可执行文件。
(3)运行可执行文件
在当前路径下运行编译后的可执行文件:
./hello
(注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行)
四、gcc/g++的详细过程
可以手动进行这四个步骤。
第一步:预处理。#号开头的代码全被解决掉(预编译,包含库,宏定义等等),产生一个后缀.i的文件以便下一步使用。
gcc -E hello.c (不会产生.i文件,文件内内容打印在了终端,所以需要将这些信息重定向到.i文件)
gcc -E hello.c >> hello.i
第二步:编译。这一步主要检查语法错误。产生一个后缀.s的文件(汇编文件)
gcc -S hello.i (大写字母S)
第三步:汇编。产生后缀.o的object目标文件,二进制,但不可以运行,因为缺少库信息
gcc -c hello.s
第四步:链接。添加库信息,产生一个后缀.o的可执行文件
gcc hello.o -o hello
Ubuntu系统---终端下用g++进行c++项目的更多相关文章
- ubuntu系统虚拟机下共享文件夹
一般情况 1.安装: sudo apt-get install open-vm-dkms 2.挂载: sudo mount -t vmhgfs .host:/ /mnt/hgfs 用以上命令安 ...
- ubuntu在终端下复制粘贴的2种方法
最近因为项目需要在ubuntu环境下开发(我是用的unbantu虚拟环境),经常要在终端下手动输入很长的文件路径,觉得很麻烦,就谷歌了2种方法如下 你可能会问,什么是ubuntu? 简单来说就是一个基 ...
- ubuntu系统根目录下各个目录用途说明
1./ 根目录 --------- 所有目录挂在其下 2./boot --------- 存放Ubuntu内核和系统启动文件.系统启动时这些文件先被装载. 3./etc ---- ...
- mac系统终端下忽略大小写 与 git自动补全(git auto completion)
1.下载git-completion.bash 并放到home 目录下: curl https://raw.githubusercontent.com/git/git/master/contrib/c ...
- vs code 在终端下使用 code ./ 打开当前项目
Mac OS Visual Studio Code的扩展工具菜单中有Install command line的快捷安装 运行 VS code并打开命令面板( ⇧⌘P ),然后输入 shell comm ...
- Ubuntu系统使用apache部署多个django项目(python4.3)
/etc/apache2/sites-available/pyweb.conf <VirtualHost *:> ServerName 192.168.1.46 DocumentRoot ...
- Ubuntu系统的安装
在上一篇博客中,我们已经建立了一个“空白”的虚拟Ubuntu镜像,在这篇博客中,我们将介绍如何安装并进入完整的Ubuntu系统. 写在前面:不同版本的系统在安装过程中,有些操作可能会不同,但是其核心步 ...
- Android系统在超级终端下必会的命令大全(adb shell命令大全)
. 显示系统中全部Android平台: android list targets . 显示系统中全部AVD(模拟器): android list avd . 创建AVD(模拟器): android c ...
- 虚拟机下安装ubuntu系统
前期准备工具; 1,Oracle VM VirtualBox虚拟机 下载地址:http://pan.baidu.com/s/1miSaGvm 密码:c3dy 2,ubuntu系统文件 下载地址:htt ...
随机推荐
- Ie浏览器请求400错误,谷歌火狐等浏览器正常请求.
做项目的时候,遇到一个小的问题.一个location.href="请求的url"在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,我们先来对于h ...
- pureftp 超时 mlsd
问题起因,新项目搭建系统环境,ftp总有问题 能连接成功,但总是时好时不好,解决处理,忘有用 mlsd 超时列目录问题 (一会好一会不好) # a.指定被动端口中,如20000-60000,在ipta ...
- CentOS使用yum安装jdk
1.查看系统版本命令 cat /etc/issue 2.查看yum包含的jdk版本 yum search java 或者 yum list java* 版本 jre jdk 1.8 java-1.8. ...
- selenium之定位详篇
一.Web定位方法(find_elements返回元素list) 1.id: find_element_by_id() # find_element_by_id("id") fi ...
- redis批量删除键的操作
网上也有很多关于批量删除的命令,例如,我们要删除以KEY开头的键.linux系统中当屏幕显示127.0.0.1:6379时,采用如下命令 redis-cli -h 192.168.1.1 -p 637 ...
- 如何使用U盘给电脑安装CentOS系统
准备工具:1.8G左右U盘;2.最新版UltraISO;3.CentOS ISO镜像; 上面的步骤做好之后就是将镜像刻录到U盘中,这里跟Windows系统刻录U盘的步骤是一样的,就不再多赘述了. 假如 ...
- JAVA支持字符编码读取文件
文件操作,在java中很常用,对于存在特定编码的文件,则需要根据字符编码进行读取,要不容易出现乱码 /** * 读取文件 * @param filePath 文件路径 */ public static ...
- 控制层解析post请求中json数据的时候,有些属性值为空
原因: 1.默认json数据解析的时候,值会赋给键的首字母是小写的封装的bean中的属性,如果没有首字母小写的属性,也不会报错.即bean中有getXXX方法时,从json到model会增加xxx属性 ...
- Linux 系统下提取 ShellCode
未完待续 1.使用C语言编写一个获得系统Shell的小程序. #include <unistd.h> int main() { char * shell[2]; shell[0]=&quo ...
- Luogu4081 USACO17DEC Standing Out from the Herd(广义后缀自动机)
建出广义SAM,通过parent树对每个节点求出其是否仅被一个子串包含及被哪个包含. 写了无数个sam板子题一点意思都没啊 #include<bits/stdc++.h> using na ...