在Ubuntu系统中,GCC(GNU编译器集合)可以用来编译和链接静态库和动态库
静态库是一种在编译时将库文件与目标代码链接在一起的库。静态库的扩展名为.a
。要创建静态库,首先需要编译源代码为.o
目标文件,然后使用ar
命令将目标文件打包成静态库。
创建静态库的步骤如下:
a. 编译源代码为.o
文件:
gcc -c source_file.c
b. 使用ar
命令创建静态库:
ar rcs liblibrary_name.a source_file.o
使用静态库的步骤如下:
a. 在编译时指定静态库:
gcc main.c -L/path/to/library -llibrary_name -o output_file
b. 运行生成的可执行文件:
./output_file
动态库是一种在运行时将库文件与目标代码链接在一起的库。动态库的扩展名为.so
。要创建动态库,首先需要编译源代码为.o
目标文件,然后使用gcc
命令将目标文件打包成动态库。
创建动态库的步骤如下:
a. 编译源代码为.o
文件:
gcc -fPIC -c source_file.c
b. 使用gcc
命令创建动态库:
gcc -shared -o liblibrary_name.so source_file.o
使用动态库的步骤如下:
a. 在编译时指定动态库:
gcc main.c -L/path/to/library -llibrary_name -o output_file
b. 设置LD_LIBRARY_PATH
环境变量,以便在运行时找到动态库:
export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH
c. 运行生成的可执行文件:
./output_file
注意:在使用动态库时,确保在部署应用程序时包含动态库文件,否则程序可能无法找到所需的库。