cgo報錯/usr/bin/ld: cannot find -lpthread的解決方法

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的動態庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章