C程序运行实际分为四个步骤
预编译 编译 汇编 链接
1.gcc -E Hello.c -o Hello.i
将源文件 Hello.c 文件预处理生成 Hello.i
2.gcc -S Hello.i -o Hello.s
将预处理生成的hello.i文件编译生成汇编程序Hello.s
3.gcc -c Hello.s -o Hello.o
将编译生成的 Hello.s 文件汇编生成目标文件Hello. o
4.gcc Hello.o -o Hello
将所有的Hello.o链接成为Hello执行文件
也可以直接将hello.c 直接编译为.o 文件也可以直接输出
gcc -c hello.c -o a.o
gcc hello.c -o hello
如何使用静态链接库,假设我们有3个文件分别为hello.c,hello1.c,main
其中hello hello1 中的函数将会被引用到main。
在实际的运用中,我们是通常会把这些东西包装在一个库里面
生成o文件指令
gcc -c hello.c -o hello.o
gcc -c hello1.c -o hello1.o
(当然了在这里面也要有hello.h hello1.h的头文件在)
生成好两个o文件后,我们就要开始进一步操作了。
静态链接库的创建
ar rcs 静态链接库名称 hello.o hello1.o
ar rcs libtest.a hello.o hello1.o
在这之前也要把
gcc -static main.o libtest.a
当然编译器也可能出现无法找到链接库的情况,可使用以下命令完成操作。
gcc main.o -static -L /*/*/ 绝对路径-libtest.a
参考代码
依次编辑好上述.c文件和.h 文件后
使用上面用到的命令
动态链接库的创建
1.gcc -fpic -shared 源文件名... -o 动态链接库名
gcc -fpic -shared hello.o hello1.o -o libtest1.so
2.gcc main.c libtest1.so -o main.exe
./main