“linux”怎么编译c的源程序的?“gcc”编译命令是什么?格式 gcc [option] [sourcefilename]
介绍一些常用gcc命令linux的选项:最简单gcc命令linux的是:gcc hello.c
默认的情况下将生成a.out的可执行性文件,你只需要在终端上输入./a.out就可以看到执行的结果.
如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:
gcc -o hello hello.c
命令如下:
gcc -c hello hello.c
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
linux如何查看是否已安装GCC执行gcc-v命令,如果Linux系统没有安装gcc编译器,会提示“Commandnotfound” 。
1、如果系统上安装了gcc编译器,这条命令就会显示出当前安装的gcc编译器是哪个版本 。如下:
2、如果提示命令找不到,则表明没有安装 , 如下:
扩展资料:
安装GCC的必要事项:
GCC可以用来编译C/C、FORTRAN、Java、OBJC、ADA等语言的程序 , 可根据需要选择安装支持的语言 。
安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器 。如果系统上没有编译器,不能安装源代码形式的GCC4.1.2 。如果是这种情况,可以在网上找一个与系统相适应的如RPM等二进制形式的GCC软件包来安装使用 。
系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的 。
与此不同,现在GCC建议将一个版本的GCC安装在一个单独的目录下 。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常 。
参考资料:
百度百科--GCC
linux 怎么编译c的源程序的?gcc,编译命令是什么?编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,
只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:gcc -o hello hello.c
命令:gcc -c hello hello.c
扩展资料:
gcc命令的基本用法
gcc[options] [filenames]
其中,filenames为文件名;options为编译选项 。
当不使用任何编译选项编译hello.c时 , gcc将会自动编译产生一个a.out的可执行文件:
[root@localhost c]# ls
hello.c
[root@localhost c]# gcc hello.c
[root@localhost c]# ls
a.outhello.c
执行:
[root@localhost c]# ./a.out
Hello, World!
使用-o编译选择,可以为编译后的文件指定一个名字:
[root@localhost c]# ls
a.outhello.c
[root@localhost c]# gcc hello.c -o hello
[root@localhost c]# ls
a.outhellohello.c
执行:
[root@localhost c]# ./hello
Hello, World!
注意:使用-o选项时,-o后面必须跟一个文件名,即:-o outfile 。
为了便于描述后面的选项 , 删除hello和a.out可执行文件 。
【gcc命令linux gcc命令找不到】关于gcc命令linux和gcc命令找不到的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 跟随拍摄机位是什么,跟踪拍摄是什么意思
- 佛山顺义云仓erp系统的简单介绍
- ios越狱能双开软件吗,ios越狱能双开微信吗
- 怎么qq直播手机版,手机直播间怎么开直播
- 关于windows系统一览的信息
- python数据类型有哪些代码,python的数据类型有哪几种
- 北京如何优化网站推广服务,北京网站优化推广方案
- 服务没有mysql服务,mysql服务无法启动,服务没有报告任何错误
- 关于vb.net视频会议的信息