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编译选项编译静态库。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容