gcc编译c、c++入门
一、c语言
1、在当前目录下新建c文件
$:vim hello.c
2、按i进入编辑模式。按esc退出编辑模式,输入源代码
#include <stdio.h>
int main(void)
{
printf("hello world");
return 0;
}
退出编辑模式,按住shift+两次z退出(命令行模式下,或者在底行模式下wq)
3、使用gcc编译c文件
gcc hello.c -o hello
如果编译多个cpp为可执行文件:
gcc hello1.c hello2.cpp -o c(或makefile)
4、会生成hello可执行文件,执行
./hello
ps:关于gcc编译c的过程
1. 源代码编译预处理:在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。
gcc -E hello.c -o hello.i
2. 经过编译器,生成汇编代码:
gcc -S hello.i -o hello.s
3. 经过汇编器,生成目标代码:
gcc -c hello.s -o hello.o
4. 经过链接器(负责将程序的目标文件与所需的所有附加的目标文件连接起来,附加的目标文件包括静态连接库和动态连接库),生成可执行程序:在链接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。
gcc hello.o -o hello
5. 运行可执行文件:
./hello
6. 上述步骤可以放在一起执行,gcc内部自动进行一系列处理:
gcc hello.c -o hello
./hello
转自:http://blog.csdn.net/yeruby/article/details/39450627
二、c++
$:vim hello.cpp
2、按i进入编辑模式。按esc退出编辑模式,输入源代码
#include <iostream>
using namespace std;
int main(int a,char*b[])
{
cout<<"hello world"<<endl;
return 0;
}
退出编辑模式,按住shift+两次z退出(命令行模式下,或者在底行模式下wq)
3、使用g++编译c文件
g++ hello.cpp -o hello
如果编译多个cpp为可执行文件:
g++ hello1.cpp hello2.cpp -o hello(或makefile)
4、会生成hello可执行文件,执行
./hello
gcc编译c、c++入门的更多相关文章
- GCC 编译详解
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C.C++和Object C等语言编写的程序.Gcc不仅功能强大,而且可以编译如C.C++.Object C.Jav ...
- GCC编译C程序源代码
编译简单的 C 程序 C 语言经典的入门例子是 Hello World,下面是一示例代码: #include <stdio.h> int main(void) { printf ...
- gcc编译基本用法~2
编译简单的 C 程序 C 语言经典的入门例子是 Hello World,下面是一示例代码: ;} 我们假定该代码存为文件‘hello.c’.要用 gcc 编译该文件,使用下面的命令: $ gcc -g ...
- GCC 编译详解[转]
转自http://www.cnblogs.com/azraelly/archive/2012/07/07/2580839.html GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译 ...
- gcc 编译动态库和静态库
Linux C 编程入门之一:gcc 编译动态库和静态库 cheungmine 2012 参考: C程序编译过程浅析 http://blog.csdn.net/koudaidai/article/de ...
- gcc编译问题
gcc avl.o hash.o list.o rb.o example.o -o 123.exe 多个.o输出 exe -c和-o都是gcc编译器的可选参数.-c表示只编译(compile)源文件但 ...
- GCC 编译详解 (转)
GNU CC(简称为Gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C.C++和Object C等语言编写的程序.Gcc不仅功能强大,而且可以编译如C.C++.Object C.Jav ...
- gcc 编译时 include 搜索路径
这是一个不复杂的问题:但是网上很多回答都不全面:偶找了一个比较全面的(测试过): 引用http://blog.csdn.net/fjb2080/archive/2010/01/23/5247494.a ...
- GCC 编译优化指南(转)
GCC 编译优化指南(转) http://www.jinbuguo.com/linux/optimize_guide.html 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然 ...
随机推荐
- Memcached 常见的问题
memcached是怎么工作的? Memcached的奇妙来自两阶段哈希(two-stage hash).Memcached就像一个巨大的.存储了非常多<key,value>对的哈希表. ...
- faceswap
https://github.com/deepfakes/faceswap https://anonfile.com/p7w3m0d5be
- linux 学习笔记1
1.IDE硬盘 /dev/hd[a-d] IDE1 主 /dev/hda 从 /dev/hdb IDE2 主 ...
- Android中android:layout_alignParentBottom标签不生效
Android中一个奇怪的问题 Android 6.0中android:layout_alignParentBottom设置后不生效. 详见:https://code.google.com/p/and ...
- JavaWeb关于session生命周期的几种设置方法
一般session的生命周期都是建立在用户登录系统后对用户信息进行一个记录,session类似于你有一张银行卡,而卡里的钱就是属于session存储的信息,卡掉了就不能取出里面的钱. 以前sessio ...
- 【BZOJ1811】[Ioi2005]mea 乱搞
[BZOJ1811][Ioi2005]mea Description 考虑一个非递减的整数序列 S1,....Sn+1(Si<=Si+1 1<=i<=n). 序列M1...Mn是定义 ...
- Xenserver中SR、VBD和VDI之间的关系
首先需要理解xenserver下的SR,VDI,VBD这三个概念.如下图 存储库 (SR) 虚拟磁盘映像 (VDI) 物理块设备 (PBD) 虚拟块设备 (VBD) 看上图所示,他们之间的关系. SR ...
- 【转】Power System 中基于 VIOS 的虚拟以太网实现
基于 VIOS 的虚拟以太网适配器的工作原理和配置实现 本文对 Power 系统中基于 VIOS 的虚拟以太网适配器(Virtual Ethernet Adapter)的工作原理.基本配置选项和配置步 ...
- 交叉熵(Cross-Entropy) [转载]
交叉熵(Cross-Entropy) 交叉熵是一个在ML领域经常会被提到的名词.在这篇文章里将对这个概念进行详细的分析. 1.什么是信息量? 假设X是一个离散型随机变量,其取值集合为X,概率分布函数为 ...
- (转)js原生自定义事件的触发dispatchEvent
1. 对于标准浏览器,其提供了可供元素触发的方法:element.dispatchEvent(). 不过,在使用该方法之前,我们还需要做其他两件事,及创建和初始化.因此,总结说来就是: 1 2 3 d ...