(一)编译一个简单的c程序
1. #include <stdio.h>
2. int
3. main (void)
4. {
5. printf ("Hello, world!\n");
6. return 0;
7. }
编译命令:gcc -Wall hello.c -o hello
-Wall 选项打开所有最常用到的编译警告。
(二)编译多个源文件
一个程序可能被分成多个源文件,这样可以更容易编辑和理解,尤其是在大程序的情况下—-它允许独立地编译各自的部分。
例如有三个文件:main.c hello_fun.c hello.h。其中hello.h文件定义hello函数原型,hello_fun.c 实现hello函数,main 函数调用hello函数。
编译命令:gcc -Wall main.c hello_fn.c -o newhello
(三)独立地编译文件。
如果整个程序代码被存储在单个源文件中,那么对某个函数的任何改变都需要改程序被重新编译以生成一个新的可执行文件。重新编译大的源码文件可能非常花时间。
当程序被存储在一个个单独的源文件中时,只有那些修改过源码的文件才需要重新编译。用这种方法,源文件被分开一个个编译,然后再链接在一起—-分为两个步骤。在第一阶段,文件被编译但不生成可执行文件。生成的结果被称为对象文件(obj 文件),用 GCC 时有“.o”后缀名。
在第二阶段,各个对象文件由一个被称为链接器的单独的程序合成在一起。链接器把所有的对象文件组合在一起生成单个的可执行文件。
编译命令:
gcc -Wall -c main.c 生成main.o文件
gcc -Wall -c hello_fun.c 生成hello_fun.c文件
gcc main.o hello_fun.o -o hello 生成可执行文件hello
(四)头文件的链接
-I链接
gcc -Wall -I/home/lyp/gcc main.c hello_fun.c -o hello
-I/home/hello/include 表示将/home/lyp/gcc目录作为第一个寻找头文件的目录,寻找的顺序是/home/lyp/gcc-/user/include-/user/local/include

本文详细介绍了使用GCC编译C程序的方法,包括简单的程序编译、包含多个源文件的程序编译、独立编译文件以及如何链接头文件等内容。
5563

被折叠的 条评论
为什么被折叠?



