Linux GCC编译使用动态、静态链接库
在windows下动态链接库是以.dll后缀的文件,二在Linux中,是以.so作后缀的文件。 动态链接库的好处就是节省内存空间。 1、Linux下创建动态链接库 在使用GCC编译程序时,只需加上-shared选项即可,这样生成的执行程序即为动态链接库。 例如有文件:hello.c x.h main.c [plain] view plain copy 编译:gcc hello.c -fPIC -o libhello.so 其中-fPIC选项的作用是:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的, 所以动态载入时是通过代码拷贝的方式来满足不同的调用,而不能达到真正的代码段共享的目的. 将main.c与hello.so动态库 [plain] view plain copy gcc main.c -L. -lhello -o main 一、动态链接库 1.创建hello.so动态库 [cpp] view plain copy #include <stdio.h> void hello(){ printf("hello world\n"); } 编译:gcc -fPIC -shared hello.c -o libhello.so 2.hello.h头文件 [cpp] view plain copy void hello(); 3.链接动态库 [cpp] view