为了账号安全,请及时绑定邮箱和手机立即绑定

尽管我已经安装了 libpcap,但仍然遇到“找不到 lpcap”的错误

尽管我已经安装了 libpcap,但仍然遇到“找不到 lpcap”的错误

Go
慕后森 2023-05-08 15:31:42
尽管cannot find lpcap我已经安装了libpcap-devel.go build -i -ldflags "-linkmode external -extldflags -static -X main.version=git-6e3f8a1c7a0a" -tags netgo -o prog/weaver/weaver ./prog/weaver# github.com/weaveworks/weave/prog/weaver/go/pkg/tool/linux_s390x/link: running s390x-linux-gnu-gcc failed: exit status 1/usr/lib64/gcc/s390x-suse-linux/7/../../../../s390x-suse-linux/bin/ld: cannot find -lpcap/tmp/go-link-225248852/000015.o: In function `mygetgrouplist':/tmp/workdir/go/src/os/user/getgrouplist_unix.go:15: warning: Using 'getgrouplist' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking我可以在以下位置看到 .so 文件 /usr/lib64 # ls | grep pcap libpcap.so libpcap.so.1 libpcap.so.1.8.1 
查看完整描述

2 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

openSUSE开发 RPm 不提供 static ,因此您不能静态链接,除非libpcap您能够从源代码(以及同样适用的任何其他库)构建静态库。libpcap.alibpcap

如果您可以选择动态链接您的 go 程序,那么-static从您的项目中删除可以避免这个问题。-ldflags


查看完整回答
反对 回复 2023-05-08
?
隔江千里

TA贡献1906条经验 获得超10个赞

安装库的开发版本,您将获得标头和 .a 文件以及 .so 共享库

C 链接器需要这些用于静态链接

此外,构建过程需要能够找到 .a 文件。这应该会自动发生,但您可以帮助它

找到 .a 文件所在的目录(例如通过列出您用于安装的包)并在您的 ldflags 中添加带有 -L 选项的目录


查看完整回答
反对 回复 2023-05-08
  • 2 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信