Ubuntu 学习 编译(6)

编译

编译:将代码变成可执行程序的过程。由编译器来完成。
编译过程:词法分析>语法分析>中间代码生成>代码优化>目标代码生成。
详细过程不需要太过纠结吧大概。

编译器:将便写出的程序代码转换成计算机可以运行的程序软件
C程序可以跨平台运行,但是需要在不同环境下使用编译器重新编译。

gcc编译器(GNU C Compiler)
是一种支持多种硬件平台的超级编译器。通过make工具可完成项目管理和批量编译。

编译过程:预处理、编译、汇编和连接过程。

gcc对源程序扩展名的支持:
.c C源代码文件
.a 库文件
.C、.cc、.cpp C++源代码文件
.h 头文件
.i 完成预处理的C源代码文件
.ii 完成预处理的C++源代码文件
.o 编译后的目标文件
.s 汇编语言源代码文件
.S 经过预编译的汇编源代码文件

使用vim写一份简单的代码,如比较两个数大小的
eg:

#include<stdio.h>
int max(int i,int j)
{
if(i>j) return i;
else return j;
}
int main()
{
int i,j,k;
i=1;
j=3;
printf("Hello Linux!\n");
k=max(i,j);
printf("the bigger one is %d",k);
return 0;
}

运行gcc对该文件进行编译

gcc test.c

即会在当前目录下生成一个a.out文件
直接在当前终端下即可运行该程序

./a.out

默认编译完成生成的文件名为a.out,如果要另取名则涉及到gcc编译参数的设置
设置输出文件名: gcc xxx.c -o xxxx.out
查看编译过程: gcc -v xxx.c
设置编译语言: gcc -x ‘c’ xx.u

编译C++程序时使用的命令是g++,方法与gcc相似
eg:

g++ test.cpp -o test.out

编译过程的控制

控制预处理过程:使用参数-E可以完成程序的预处理工作而不进行其他编译工作。

gcc -E -o test.cxx test.c

生成汇编代码:使用参数-S可以控制gcc在编译C程序时只生成相应的汇编程序文件,而不执行后面的编译。

gcc -S -o test.s test.c

生成目标代码:参数-c可以使用gcc在编译程序时之生成目录代码而不生成可执行程序

gcc -c -o test.o test.c

链接生成可执行文件:gcc可以把上一步步骤生成的目录代码文件生成一个可执行文件。

gcc test.o -o test.out
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值