dsfvsdfv23599 2019-07-28 18:06
浏览 658

使用go build静态链接共享库

I need to create a static library to run it in a docker container. When running my code with go run main.go it just runs smoothly. However, things get complicated when I try to build my code as a static program (re-compile all dynamic dependencies into a standalone lib, including shared libraries).

My app depends on a C shared library located in my /usr/local/lib/librandom_c.so, while my app source code is located in $GOPATH/src/github.com/<user>/myapp.

When I build the app without trying to statically link the shared library, it works without complaining:

go build -a -o hello .

...but then docker complains that the shared library does not exist (using from scratch).

So far I have tried many combinations to statically build my app:

go build -a -ldflags '-linkmode "external" -extldflags "-static"' -o hello .

gives an error:

cannot find -lrandom_c

How do I statically link my lib?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100