cgo链接静态库

通过在go代码中添加

// #cgo LDFLAGS:path/to/libxxx.a path/to/libyyy.a -L/path/to/xxx -lxxx

如果出现一些对xxx的未定义使用则

  1. 可能是静态库的顺序有问题,做如下调整:
// #cgo LDFLAGS:path/to/libyyy.a path/to/libxxx.a -L/path/to/xxx -lxxx
  1. 可能是编译静态库时编译选项添加了-fPIC的选项,确保编译静态库一定没有-fPIC编译选项,动态库的编译选项一定包含-fPIC。除非需要将静态库链接到生成的动态库(而不是可执行程序)中时需要使用-fPIC编译选项编译静态库。

你可能感兴趣的:(cgo链接静态库)