gcc编译命令linux gcc编译命令行

linux 怎么编译c的源程序的?gcc,编译命令是什么?在Linux下面,如果要编译一个C语言源程序,我们要使用gcc编译器 。
先将源文件编译成目标文件:gcc - c hello.c
生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o
如:
int main(int argc,char **argv)
{
printf("Hello Linux\n");
}
扩展资料:
在使用GCC编译器的时候 , 我们必须给出一系列必要的调用参数和文件名称 。GCC编译器的调用参数大约有100多个,这里只介绍其中最基本、最常用的参数 。具体可参考GCC Manual 。
GCC最基本的用法是∶gcc [options] [filenames]
其中options就是编译器所需要的参数 , filenames给出相关的文件名称 。
参考资料:
百度百科_gcc
linux下gcc的安装与使用方法一:
该方法超简单:
sudoapt-getbuild-depgcc
就上面这条命令就可以搞定
方法二:
sudoapt-getinstallbuild-essential
还是简单,一句命令也可以搞定
安装完了可以执行
gcc--version
的命令来查看版本,输出如下:
gcc(GCC)4.2.3(Ubuntu4.2.3-2ubuntu7)
Copyright(C)2007FreeSoftwareFoundation,Inc.
编译则使用gcc命令 。要往下学习首先就得熟悉gcc命令的用法 。
gcc命令提供了非常多的命令选项 , 但并不是所有都要熟悉 , 初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心 。
一. 常用编译命令选项
假设源程序文件名为test.c 。
1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件 。这里未指定输出文件,默认输出为a.out 。
2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test 。-o选项用来指定输出文件的文件名 。
3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件 。
4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件 。
5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件 。
6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test 。
7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序 。级别为1~3,级别越大优化效果越好,但编译时间越长 。
二. 多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件 。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接 。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
以上两种方法相比较 , 第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件 , 未修改的文件不用重新编译 。
arm-linux-gcc怎么编译自己写的头文件linux gcc编译c文件头文件
linux gcc编译c文件头文件,使用GCC编译器编译C语言
凶猪下山
转载
关注
0点赞·1047人阅读
GCC编译C源代码有四个步骤:预处理—-编译—-汇编—-链接 。
可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程 。
下面将通过对一个程序的编译来演示整个过程 。
#include
int main()
{
printf("happy new year!\n");
return 0;
}
1:预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看 。
预处理 命令:gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i
2:编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言 。可用gcc的参数-S来参看 。
编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序 。汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令 。
编译命令:gcc -S hello.i -o hello.s
作用:将预处理输出文件hello.i汇编成hello.s文件
3:汇编:把编译阶段生成的.s 文件转换为二进制目标代码 。可用gcc的参数-c来参看 。汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式,并将结果保存在目标文件hello.o中 。hello.o文件是一个二进制文件,它的字节编码是机器语言 。
汇编 命令:gcc -c hello.s -o hello.o
作用:作用:将汇编输出文件hello.s编译输出hello.o文件
4:链接:把obj文件链接为可执行的文件:链接器(ld)负责.o文件的并入 。结果就是hello文件,它是一个课执行的目标文件,可以加载到存储器后由系统调用 。
链接命令:gcc hello.o -o hello
一步操作的话是: (-o必须在hello之前 )
$gcc hello.c -o hello
$./hello或者:(会默认生成a.out文件)
$gcc hello.c
$./a.out
【gcc编译命令linux gcc编译命令行】关于gcc编译命令linux和gcc编译命令行的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读