Linux下GCC编译C语言
Linux下GCC编译C语言 1.创建一个.C文件 # vi/vim name.c 2.编译name.c文件,生成可执行文件 # gcc name.c 3.执行文件,在默认情况下产生的可执行程序名为a.out # ./a.out 4.通常可以通过gcc的“-o”选项来指定自己的可执行程序名称。 # gcc -o name name.c 生成可执行文件 name 执行: # ./name 5.使用gcc的“-c”标记来编译支持库代码(对多个文件进行编译) # gcc -c name.c 输出结果为一个名为 name.o 的文件 例子: # gcc -c name.c # gcc -c main.c 现在有了两个目标文件:name.o和main.o。它们包含能够被Linux执行的目标代码。 再一次调用GCC来执行连接阶段的工作: # gcc -o NameMain name.o main.o 执行调用:./NameMain 命令简化:GCC对如何将多个源文件编译为一个可执行程序有内置的规则。 # gcc -o NameMain name.c main.c # ./NameMain 6. 使用外部函数库 GCC常常与包含标准例程的外部软件库结合使用,几乎每一个Linux应用程序都依赖于由GNU C函数库GLIBC。 编译命令:GCC的"-lm"选项,它告诉GCC查看系统提供的数学库(libm) # gcc -o name -lm name.c 7.共享函数库与静态函数库,Linux系统上的函数库分为两种不同的类型:共享的和静态的 。 (1)静态函数库:每次当应用程序和静态连接的函数库一起编译时,任何引用的库函数中的代码都会被直接包含进最终的二进制程序。 (2)共享函数库:包含每个库函数的单一全局版本,它在所有应用程序之间共享。这一过程背后所涉及的机制相当复杂; 但主要依靠的是现代计算机的虚拟内存能力,它允许包含库函数的物理内存安全地在多个独立用户程序之间共享。 (3)使用共享函数库不仅减少了文件的容量和Linux应用程序在内存中覆盖的区域,而且它还提高了系统的安全性; 一个被许多不同程序同时调用的共享函数库很可能会驻留在内存中,以在需要使用它时被立即使用,而不是位于磁盘的交换分区中; 这有助于进一步减少一些大型Linux应用程序的装载时间。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212854.html原文链接:https://javaforall.net
