Linux编译静态库、动态库

 

一、Linux上编译静态库

# 1.编译成.o文件
gcc -c a.c b.c

// 2.编译成静态库
ar -r liba.a a.o b.o

// 3.链接成可执行文件
gcc main.c -o main -L[库所在路径] -l[库名] 
g++ main.cpp -o main -L./ -la

 

 

二、Linux上编译动态库

// 1.把cpp封装成so库
g++ -fPIC -shared -o libxx.so xxx.cpp
g++ -fPIC -shared -o libtest.so test.cpp

// 2.编译
g++ main.cpp -o main -L[库路径] -l[库名]
g++ main.cpp -o main -L./ -ltest

其他程序调用so库,编译时报错,找不到so库解决方法:

方法一:

  把生成的so库拷贝到 /usr/lib 或者 /usr/lib64 文件夹中

 

方法二:

  设置临时环境

LD_LIBRARY_PATH=./
export LD_LIBRARY_PATH

 

posted @ 2023-06-17 22:05  十一的杂文录  阅读(566)  评论(0编辑  收藏  举报