您尚未登录。

#1 2016-07-09 22:04:36

messyidea
会员
注册时间: 2015-09-24
帖子: 31

静态编译遇到这种问题怎么办?

想静态编译一个aria2c放到nas上用用。
然后编译链接出错
```
  CXXLD    aria2c
/usr/bin/ld: cannot find -lexpat
/usr/bin/ld: cannot find -lnettle
/usr/bin/ld: cannot find -lgmp
./.libs/libaria2.a(util.o): In function `aria2::util::getHomeDir[abi:cxx11]()':
/root/project/aria2-1.24.0/src/util.cc:1393: warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
./.libs/libaria2.a(SocketCore.o): In function `aria2::callGetaddrinfo(addrinfo**, char const*, char const*, int, int, int, int)':
/root/project/aria2-1.24.0/src/SocketCore.cc:1446: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:1862: aria2c] Error 1
make[3]: Leaving directory '/root/project/aria2-1.24.0/src'
make[2]: *** [Makefile:2410: all-recursive] Error 1
make[2]: Leaving directory '/root/project/aria2-1.24.0/src'
make[1]: *** [Makefile:560: all-recursive] Error 1
make[1]: Leaving directory '/root/project/aria2-1.24.0'
make: *** [Makefile:471: all] Error 2
```

在arch上面遇到这种情况你们一般怎么办?
好像arch上面好多东西都没有提供.a的链接库
比如其它人也会遇到类似这样的问题
这里

离线

#2 2016-07-10 00:27:16

messyidea
会员
注册时间: 2015-09-24
帖子: 31

Re: 静态编译遇到这种问题怎么办?

看到这里 , 好像都要去找源码然后编译。
找了几个帖子,貌似解决方法大多都是disable 静态编译。想要编译静态的之能够一个个找源码吗?

有没有像debian之类的 apt-get insatll libxxx-dev 之类简单的解决方法呢?

最近编辑记录 messyidea (2016-07-10 00:28:04)

离线

#3 2016-07-10 10:29:17

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,956
个人网站

Re: 静态编译遇到这种问题怎么办?

Arch 大部分官方包已经不再包含静态库了。如果需要,你可以自己重新打包这些库,把 staticlibs 加到 options 中。
不如把动态链接然后把需要的动态库拷过去方便。

离线

#4 2016-07-10 11:53:27

messyidea
会员
注册时间: 2015-09-24
帖子: 31

Re: 静态编译遇到这种问题怎么办?

依云 说:

Arch 大部分官方包已经不再包含静态库了。如果需要,你可以自己重新打包这些库,把 staticlibs 加到 options 中。
不如把动态链接然后把需要的动态库拷过去方便。

谢啦。还是准备去digitalocean临时开一台debian的vps编译好了。

离线

#5 2016-07-10 15:35:42

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,956
个人网站

Re: 静态编译遇到这种问题怎么办?

你也可以用 lxc 弄一个 Debian 或者 CentOS 之类的用啦。

lxc-create -t download -n 名字

然后按提示操作就好。

离线

#6 2016-07-13 14:07:15

messyidea
会员
注册时间: 2015-09-24
帖子: 31

Re: 静态编译遇到这种问题怎么办?

依云 说:

你也可以用 lxc 弄一个 Debian 或者 CentOS 之类的用啦。

lxc-create -t download -n 名字

然后按提示操作就好。

还没玩过lxc,有空去试试~

离线

页脚