Ubuntu编写动态链接库

  1. 创建源程序main.cpp
  2. 生成o文件main.o
g++ -c -fPIC main.cpp
  1. 编译生成动态链接库
g++ -shared -fPIC -o libgetrectangle.so main.o
  1. 将so文件拷贝到/usr/lib
  2. 创建测试程序test.cpp,测试程序要先声明被调用函数
  3. 编译test.cpp
g++ -o test test.cpp -L. -lgetrectangle  `pkg-config --cflags --libs opencv`
  1. 运行测试程序./test,确保存放图片地址的文本文件在同一级目录

PS:在符号之前添加visibility属性__attribute__ ((visibility ("hidden"))),将不允许它们在库中被导出,但是可以在源文件之间共享。
这里,test将无法调用动态链接库中被声明为__attribute__ ((visibility ("hidden")))的函数

你可能感兴趣的:(Ubuntu编写动态链接库)