在CentOS系统上,使用GCC编译动态链接库(也称为共享库)的方法如下:
hello.c的C源文件,内容如下:#include <stdio.h>
void hello() {
printf("Hello, World!\n");
}
.o文件)。在这个阶段,我们不指定动态链接库的标志,只是将源代码编译为目标文件。例如:gcc -c hello.c -o hello.o
gcc命令将目标文件链接为动态链接库(.so文件)。在这个阶段,我们需要指定-fPIC选项以生成位置无关代码,以及-shared选项来创建共享库。例如:gcc -fPIC -o libhello.so hello.o
这将在当前目录下创建一个名为libhello.so的动态链接库。
main.c的C源文件,内容如下:#include <stdio.h>
void hello(); // 声明hello函数
int main() {
hello();
return 0;
}
然后,使用以下命令编译main.c文件,并链接到libhello.so动态链接库:
gcc main.c -L. -lhello -o main
这里,-L.表示在当前目录下查找库文件,-lhello表示链接到libhello.so库(去掉lib前缀和.so后缀)。
LD_LIBRARY_PATH环境变量,以便系统能够找到动态链接库。例如:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
然后,运行编译后的程序:
./main
输出结果应为:
Hello, World!
这就是在CentOS系统上使用GCC编译动态链接库的方法。