cgo编译报错:
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -lpthread
需要修改其中针对库的声明如下:
package main
/*
#cgo CFLAGS: -I .
#cgo CFLAGS: -I /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64/include
#cgo CFLAGS: -I /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64/linux/include
#cgo LDFLAGS: -L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64/jre/lib/amd64/server -Wl,-Bdynamic -ljvm
#cgo LDFLAGS: -L/lib64 -Wl,-Bdynamic -lc -lpthread
#cgo LDFLAGS: -L/var/lib -ljni
#include <jni.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "jni.h"
*/
import "C"
增加如下内容:
#cgo LDFLAGS: -L/lib64 -Wl,-Bdynamic -lc -lpthread
通过 -Wl,-Bdynamic声明,使用libpthread和libc的动态库