ubuntu中gcc编译动态库的方法
导读:在Ubuntu系统中,使用GCC编译动态库(共享库)的步骤如下: 编写源代码文件。例如,创建一个名为hello.c的文件,内容如下: #include <stdio.h> void hello( { printf...
在Ubuntu系统中,使用GCC编译动态库(共享库)的步骤如下:
- 编写源代码文件。例如,创建一个名为
hello.c的文件,内容如下:
#include <
stdio.h>
void hello() {
printf("Hello from the shared library!\n");
}
- 使用GCC编译源代码文件,生成目标文件(
.o文件)。在这个例子中,我们将生成一个名为hello.o的目标文件:
gcc -c -fPIC hello.c -o hello.o
这里,-c选项表示只编译不链接,-fPIC选项表示生成位置无关代码(Position Independent Code),这对于创建共享库是必需的。
- 使用GCC将目标文件链接为动态库。在这个例子中,我们将创建一个名为
libhello.so的共享库:
gcc -shared hello.o -o libhello.so
这里,-shared选项表示生成共享库。
现在,你已经成功创建了一个名为libhello.so的动态库。你可以在其他程序中使用-L和-l选项来链接这个库。例如,创建一个名为main.c的文件,内容如下:
#include <
stdio.h>
void hello();
// 声明外部函数
int main() {
hello();
return 0;
}
然后,使用以下命令编译main.c文件,并链接到libhello.so动态库:
gcc main.c -L. -lhello -o main
这里,-L.选项表示在当前目录下查找库文件,-lhello选项表示链接名为libhello.so的库。
最后,运行生成的可执行文件:
./main
输出结果应为:
Hello from the shared library!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu中gcc编译动态库的方法
本文地址: https://pptw.com/jishu/777209.html
