1.编译单个源文件
[例如]在屏幕上打印"Hello,Linux."
[源代码]
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char **argv)
{
printf("Hello,Linux.\n")
exit(0)
}
将源文件保存为hello.c,开始进行编译
$gcc -o hello hello.c
编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行
$./hello
在屏幕上,你将会看到打印结果:Hello,Linux.
说明:在默认情况下,编译成功完成后,会在当前路径下,生成一个名为a.out的文件,然后执行$./a.out便可打印结果,但通常可以通过选项-o来指定自己的可执行程序名称
2.编译多个源文件
3.使用外部函数库
4.使用共享函数库和静态函数库
5.gcc选项详细描述
1.7.2 gcc/egcs 的主要选项
表 1-3 gcc 命令的常用选项
选项 解释
-ansi 只支持 ANSI 标准的 C 语法。这一选项将禁止 GNU C 的某些特色,
例如 asm 或 typeof 关键词。
-c 只编译并生成目标文件。
-DMACRO 以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
-E 只运行 C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY 连接时搜索指定的函数库LIBRARY。
-m486 针对 486 进行代码优化。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或 -O1 优化生成代码。
-O2 进一步优化。
-O3 比 -O2 更进一步优化,包括 inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接。
-UMACRO 取消对 MACRO 宏的定义。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。
1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。
2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。
3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.cgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。
4、打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译完的文件。现在运行a.out文件。在a.out文件的目录下打开终端并输入./a.out就是运行文件了。
5、如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。-o后面跟着的编译生成的文件名。
6、再运行test.out在终端中输入./test.out结果如图。这样在linux系统下编译并运行C语言就完成了。
实现方式1(高大上方式):通过在/etc/init.d下添加启动/停止脚步,并在相应运行级别的/etc/rc.d/rcX.d目录下建立相应软连接的方式。这是LInux标准服务的启动方式,同时也支持采用service XXX start的方式启动和关闭。1. 在/etc/init.d下放置相应启动程序的脚本,脚本必须实现start, stop, restart三和 *** 作。可以参考该目录已有的脚本,改写一下就行。
2. 在/etc/rc.d/rcX.d(如rc3.d)目录下用ln建立命令建立相应的link文件,K开头为关机时调用的,S开头为开机时使用的,后面接的数字表明这个服务相对于其它服务的启动优先级。可以参考该目录已有的连接文件名,ln一下就行。
实现方式2(菜鸟方式): 修改/etc/rc.d/rc.local。这个文件一般会放一些用户个性化的命令。
有点像早期 DOS 年代的 autoexec.bat 与 config.sys, 它就是一个脚本,在里头添上你的应用就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)