在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编译动态链接库的方法。