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的动态库

发布了228 篇原创文章 · 获赞 62 · 访问量 130万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览