目录
一, 编译工具 (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 0;
- }
(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 0;
- }
(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
来源: http://www.bubuko.com/infodetail-3138505.html