源码Docker编译出错。求高手解答,谢谢!


源码Docker编译出错。求高手解答,谢谢!

环境

* CentOS 7 x86_64
* Go版本:Go 1.4.2 Linux/amd64

已经安装了libdevmapper-devel、btrfs-dev、device-mapper-devel-1.02.93-3.el7_1.1.x86_64 、btrfs-progs-devel-3.16.2-1.el7.x86_64

Docker源码版本:branch release_v1.8.0 commit afb831d35e62139c9e7a214a471c3dd956076223

出错信息

root@localhost docker]# ./hack/make.sh binary

WARNING! I don't seem to be running in the Docker container.

The result of this command might be an incorrect build, and will not be

officially supported.

#

Try this instead: make all

#

bundles/1.8.0-dev already exists. Removing.

---> Making bundle: binary (in bundles/1.8.0-dev/binary)
Building: bundles/1.8.0-dev/binary/docker-1.8.0-dev

github.com/docker/docker/docker

/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lsqlite3
/usr/bin/ld: cannot find -ldevmapper
/usr/bin/ld: cannot find -ldevmapper
/usr/bin/ld: cannot find -lpthread
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
/usr/lib/golang/pkg/tool/linux_amd64/6l: running gcc failed: unsuccessful exit status 0x100
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自:


源码不是这样编译的。
推荐的源码编译是用容器来进行编译。就是在安装上docker,然后build镜像(docker里面的Dockerfile),然后再用这个镜像在容器里编译代码。这个流程在Makefile里有。
可以参考这个http://www.cnblogs.com/ToBeSmart/p/4311297.html

如果你非要在物理机上编译,应该是缺了一些依赖。建议你参考这个:
https://github.com/xuxinkun/do ... rfile
这个是centos6的。跟7应该差不太多。

寻觅神迹 - 华为工程师。专注云计算和美食。

赞同来自:


感觉是少某些库 找下这些库 补全就可以了~~

夜风

赞同来自:


谢谢楼上二位。是不是golang build链接的库要放在当前目录,或-L指定的目录?

要回复问题请先登录注册