在CentOS系统中,使用GCC编译器生成静态库和动态库的步骤如下:
编写源代码:
假设你有两个源文件 file1.c 和 file2.c。
编译源文件为对象文件:
gcc -c file1.c -o file1.o
gcc -c file2.c -o file2.o
创建静态库:
使用 ar 工具将对象文件打包成静态库。假设你想创建一个名为 libmylib.a 的静态库。
ar rcs libmylib.a file1.o file2.o
使用静态库:
在你的主程序中使用这个静态库。假设你的主程序是 main.c。
gcc main.c -L. -lmylib -o myprogram
这里 -L. 表示在当前目录查找库文件,-lmylib 表示链接 libmylib.a 库。
编写源代码:
同样假设你有两个源文件 file1.c 和 file2.c。
编译源文件为位置无关代码(PIC)对象文件:
gcc -fPIC -c file1.c -o file1.o
gcc -fPIC -c file2.c -o file2.o
创建动态库:
使用 gcc 将对象文件链接成动态库。假设你想创建一个名为 libmylib.so 的动态库。
gcc -shared -o libmylib.so file1.o file2.o
使用动态库:
在你的主程序中使用这个动态库。假设你的主程序是 main.c。
gcc main.c -L. -lmylib -o myprogram
这里 -L. 表示在当前目录查找库文件,-lmylib 表示链接 libmylib.so 库。
设置运行时库路径:
为了让系统能够找到动态库,你需要设置 LD_LIBRARY_PATH 环境变量。
export LD_LIBRARY_PATH=.
ar 工具打包对象文件,生成 .a 文件。gcc -fPIC 编译对象文件为位置无关代码,然后使用 gcc -shared 链接生成 .so 文件。通过这些步骤,你可以在CentOS系统中成功生成和使用静态库和动态库。