通过gcc命令,最简单的单个文件的gcc xxxc -o xxx,输出的就是可执行文件,如果编译链接没错的话,如果你有多个文件还要控制具体的编译优化这些选项,只需要在这基础上加上其他的编译选项即可。
方法/步骤
1、编写c代码,并输入以下代码,生成文件helloc
[root@wahoo
test]#
vim
helloc
#include
<stdioh>
#define
DISPLAY
"hello
c!"
int
main(void)
{
printf("%s\n",
DISPLAY
);
return
0;
}
ZZ(说明:ZZ当前文件进行快速保存 *** 作)
2、预编译(Preprocessing)
会对各种预处理指令(#include
#define
#ifdef
等#开始的代码行)进行处理,删除注释和多余的空白字符,生成一份新的代码
[root@wahoo
test]#gcc
-E
helloc
-o
helloi
E
参数
通知gcc对目标文件进行预编译,这里是对文件helloc文件
o
参数
是对命令输出结果进行导入 *** 作,这里是把
gcc
-E
helloc
*** 作结果输出到文件helloi(命名要自定义)中进行保存
这个命令执行完后我们目录下多了一个文件helloi,你可以查阅一下文件的内容。
3、编译(Compilation)
对代码进行语法、语义分析和错误判断,生成汇编代码文件
[root@wahoo
test]#gcc
-S
helloi
-o
hellos
S
参数
通知gcc对目标文件进行编译,这里是对文件helloi文件
通过这一步我们知道
C语言跟汇编的
关系,至于他们之前是如何进行转换的,大家可以进行更深入的学习与探讨。
此时目录下多了一个hellos文件,内容如图
4、汇编(Assembly)
把汇编代码转换与计算机可认识的二进制文件,要知道计算机只认识0和1呢
[root@wahoo
test]#gcc
-c
hellos
-o
helloo
c
参数
通知gcc对目标文件执行指令转换 *** 作
此步骤我们得到文件helloo
大家也同样打开文件查看一下,这个文件里面几乎没几个字符大家能看懂,这就对了,但大家可以通过这种方法将其转化为我们可读的形式:
[root@wahoo
test]#readelf
-a
helloo
5、链接(Linking/Build)
通俗的讲就是把多个o文件合并成一个可执行文件,二进制指令文件
[root@wahoo
test]#gcc
helloo
-o
hello
这里我们就得到了一个可以直接在系统下执行的文件
hello
我们也可以对这个文件进行readelf *** 作,也可以进行二进制指令转汇编的 *** 作
[root@wahoo
test]#objdump
-d
hello
6、程序运行
[root@wahoo
test]#/hello
hello
c!
7、总结:gcc
编译c程序的主要过程包括
预编译->编译->汇编->连接
四个过程,每个过程都分别进行不同的处理,了解了这其中的一些原理,对c编程的理解大有益处
运行结果我不给了,自己看:
直接编译:
gcc mainc computec inputc -o power
运行程序
/power
makefile 最简单,直观的的编写方法:
power:maino computeo inputo
cc maino computeo inputo -o power
maino:mainc mainh computeh inputh
cc -c mainc
computeo:computec computeh
cc -c computec
inputo:inputc inputh
cc -c inputc
PHONY : clean
clean :
rm -f o power
保存后成makefile或Makefile推荐使用后者:
make
想重新编译前运行:
make clean
make
运行程序:
/power
特别说明:cc,rm命令行前有一个tab符,别搞错了。cc 在linux上是指向gcc的软符号链接,为了兼容其他系统,我们写的cc。
makefile有更简写但不简单的写法,不给出来。你提问这个说明你不会编写makefile,给出的是最基本用法。有兴趣自己看,一天能学完。
gcc不是编译C语言,C++语言之类的吗gcc -x后面可加的参数只有:`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', `assembler-with-cpp' 所以编译不了java程序,要用专门的程序编译。
格式 gcc [option] [sourcefilename]
介绍一些常用的选项:最简单的是:gcc helloc
默认的情况下将生成aout的可执行性文件,你只需要在终端上输入/aout就可以看到执行的结果
如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:
gcc -o hello helloc
命令如下:
gcc -c hello helloc
gcc编译分为四部;
第一步,预编译,将程序中的宏定义等预编译;
第二步,编译,将h,c等文件编译成为o文件;
第三步,汇编;
第四步,连接,将o文件连接库,生成可执行文件!
先去Cygwin网站(>
接下来点击“下一步”,然后从一系列服务器列表中选择一个你认为网速最快的一个作为下载服务器。接着点击“下一步”就会出现如下图所示的界面,用来选择你想安装的程序。
GCC 就是 MinGW 的核心所在,GCC 是一套支持众多计算机程序语言的编译系统,而且在语言标准的实现上是最接近于标准的。并且 GCC
GCC 本身不像 VC 那样拥有IDE 界面(在 Windows 上也存在 Dev C++ 之类的支持 MinGW 编译器的
IDE)。源代码编辑你可以选用任何你喜欢的文本编辑器(据说微软的开发人员包括 VC 的开发都不用 VC 所带的 IDE 编辑器,而是选用 GNU
的 VIM 编辑器)。然后使用 make 等工具来进行软件项目的编译、链接、打包乃至发布。而像 cvs(svn)
源代码版本控制工具可以让世界上任何一个角落的人都可以参与到软件项目中来。
1、下载MinGW
一种方法是到Sourceforge(>
但是我配置的时候我电脑上安装了codeblocks,已经自带了MinGW。
2、环境变量的配置
在(系统属性-->高级-->环境变量-->系统变量 中)(以下目录都根据自己的电脑MinGW所在位置不同而改变)
a在PATH的值中加入“C:\Program Files\MinGWStudio\MinGW\bin”。这是寻找gcc编译器的路径。如果PATH中还有其他内容,需要用英文状态下分号进行分割
b新建LIBRARY_PATH变量,在其值中加入“C:\Program Files\MinGWStudio\MinGW\lib”。这是标准库存放的路径。
c新建C_INCLUDE_PATH变量,在其值中加入“C:\Program Files\MinGWStudio\MinGW\include”。这是Include查找头文件的路径。
3、验证gcc是否正常运行
在cmd控制台窗口下面,输入gcc -v。若已经成功安装好,会显示gcc的版本信息。
以上就是关于gcc怎么编译c文件全部的内容,包括:gcc怎么编译c文件、用gcc编译器C语言程序的技巧、linux用gcc编译等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)