go - 使用静态 c 库编译 go
问题描述
我正在尝试编译 Go,它包含运行它所需的所有库。我正在尝试在 lambda 中运行 go 二进制文件,因此我需要在构建它(在 linux 上)时添加一些 C 库(我认为),但是当我这样做时,我得到了这个错误:
[ec2-user@ip- src]$ go build -tags static --ldflags '-extldflags "-static -lpthread -lxml2 -lz -lm -llzma -lc"' main.go
# command-line-arguments
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exit status 1
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lxml2
/usr/bin/ld: cannot find -lz
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -llzma
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
---EDIT00000
我做了一个快速ldconfig
搜索?例如,看看这个……这些是我需要的吗?
ldconfig -p | grep -e xml2 -e pthread -e lzma -e dl
libxml2.so.2 (libc6,x86-64) => /lib64/libxml2.so.2
libreadline.so.6 (libc6,x86-64) => /lib64/libreadline.so.6
libpthread.so.0 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libpthread.so.0
liblzma.so.5 (libc6,x86-64) => /lib64/liblzma.so.5
libhandle.so.1 (libc6,x86-64) => /lib64/libhandle.so.1
libgpgme-pthread.so.11 (libc6,x86-64) => /lib64/libgpgme-pthread.so.11
libdl.so.2 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libdl.so.2
libdl.so (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libdl.so
解决方案
推荐阅读
- javascript - 使用多个 Material UI 复选框进行 React Hook Form 验证
- cgal - 使用 CGAL 创建边网格
- apache-spark - pyspark注册内置函数并在spark.sql查询中使用
- ios - 第三方 iOS 应用程序能否以编程方式按位置或人名搜索照片资源?
- excel - VBA Excel格式化真的很慢
- x86 - 获取 EBDA 基地址的最可靠方法是什么?
- c++ - 使用成员变量的函子类
- reactjs - 我想导航到一个页面/组件,在该页面/组件中我使用 React 钩子和 useHistory 从另一个组件传递了数据,但我得到了未定义
- javascript - 如何使用 Chart.js(圆环图)旋转到数据集的中心
- r - 重新编码值(不是标签)