一、调用so动态库;
1、so动态库文件的生成;
首先编写.c源文件和.h头文件;
使用gcc编译工具编译生成.so文件
gcc -shared source.c -o libname.so
或gcc -shared -fPIC source.c -o libname.so
-fPIC具体的意思需要查一下;
【注意】我在使用过程中,so动态文件的明明一定要注意,文件名一定要lib开头,libxxx.so,在之后导入时不需要加lib,如#cgo LDFLAGS: -L./ -lxxx即可;
2、go语言如何调用;
go语言想调用C语言的动态库,可通过cgo,具体用法如下:
package main
/*
#cgo CFLAGS: -I<path_of_header_file>
#cgo LDFLAGS: -L<path_of_so_file> -l<name_of_so>
#include "header_file"
*/
import "C"
func main(){
C.function()
}
3、在使用前先更改路径LD_LIBRARY_PATH
linux系统下动态库也称共享库,自己生成的so文件可能也需要依赖第三方库,改变量就是告诉系统哪