在CentOS上使用GCC生成动态库(共享库)的步骤如下:
.c
文件。例如,创建一个名为hello.c
的文件,内容如下:#include <stdio.h>
void hello() {
printf("Hello from the shared library!\n");
}
.o
文件可以用于创建动态库。在终端中运行以下命令:gcc -c -fPIC hello.c -o hello.o
这里,-c
选项表示只编译不链接,-fPIC
选项表示生成位置无关代码。
gcc
将.o
文件链接为动态库。在终端中运行以下命令:gcc -shared -o libhello.so hello.o
这里,-shared
选项表示生成共享库,-o
选项指定输出文件名,libhello.so
是动态库的默认命名格式(以lib
开头,以.so
结尾)。
现在,你应该在当前目录下看到一个名为libhello.so
的动态库文件。你可以使用ldd
命令查看动态库的依赖关系:
ldd libhello.so
要在程序中使用这个动态库,需要在编译时指定库的路径和名称。例如,创建一个名为main.c
的文件,内容如下:
#include <stdio.h>
void hello(); // 声明动态库中的函数
int main() {
hello();
return 0;
}
使用以下命令编译main.c
并链接到动态库:
gcc main.c -L. -lhello -o main
这里,-L.
选项表示在当前目录下查找库文件,-lhello
选项表示链接名为libhello.so
的库。
运行生成的可执行文件:
./main
输出应为:
Hello from the shared library!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
相关推荐:C++程序在CentOS上如何部署