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 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然 ...
随机推荐
- shell学习五十八天----/proc文件系统
/proc文件系统 前言:linux中的/proc文件系统,由一组文件夹和文件组成,挂载(mount)与/proc文件夹下. /proc文件系统是一种虚拟文件系统,以文件系统文件夹和文件形式,提供一个 ...
- Fedora13下编译busybox-1.15.0出现can not find lcrypt错误
在Fedora 13 系统上编译busybox(非交叉编译)产生错误 root@localhost # make ... gcc -Wall -Wshadow -Wwrite-strings -Wun ...
- 【matlab】View视点函数
view(az,el) view(az,el);或view([az el]);均可.
- 红外图像盲元补偿matlab实现源码与效果验证
在国内红外公司绝大多数一直以来国外进口的成像芯片,能够进行红外芯片自助开发的电学应该只有大立光电和广微积电光学方法只有上海巨哥和一直未能产 品化的昆山光微电子.由于政治和历史原因,欧美对中国大陆还是实 ...
- poj 2125(最小割)
题目链接:http://poj.org/problem?id=2125 思路:将最小点权覆盖转化为最小割模型,于是拆点建图,将点i拆成i,i+n,其中vs与i相连,边容量为w[i]-,i+n与vt相连 ...
- hdu 4421(枚举+2-sat)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4421 思路:枚举32位bit,然后2-sat判断可行性,这里给出2-sat矛盾关系构图: 1.a&am ...
- 使用神器MobaXterm连接远程mysql和redis
https://mobaxterm.mobatek.net/download-home-edition.html mysql redis 连接测试 mysql 127.0.0.1 3307 密码使用线 ...
- unintest基础1
import unittest class Testfunc(unittest.TestCase): def testfunc(self): print('testfunc1') def testfu ...
- UI通过UISlider编写游戏第六感
#import "RootViewController.h" @interface RootViewController (){ UILabel *scoreLabel; } ...
- do not use numbers as enumeration values
w 字段类型设置错误 有限元的判断,勿用枚举行. MySQL :: MySQL 5.7 Reference Manual :: 12.4.4 The ENUM Typehttps://dev.mysq ...