Ubuntu编写动态链接库
2019-08-25 本文已影响0人
AsGroot
- 创建源程序
main.cpp
- 生成o文件
main.o
g++ -c -fPIC main.cpp
- 编译生成动态链接库
g++ -shared -fPIC -o libgetrectangle.so main.o
- 将so文件拷贝到
/usr/lib
- 创建测试程序
test.cpp
,测试程序要先声明被调用函数 - 编译
test.cpp
g++ -o test test.cpp -L. -lgetrectangle `pkg-config --cflags --libs opencv`
- 运行测试程序
./test
,确保存放图片地址的文本文件在同一级目录
PS:在符号之前添加visibility属性__attribute__ ((visibility ("hidden")))
,将不允许它们在库中被导出,但是可以在源文件之间共享。
这里,test将无法调用动态链接库中被声明为__attribute__ ((visibility ("hidden")))
的函数