文档章节

查libevent不能编译出动态库问题

临峰不畏
 临峰不畏
发布于 2016/05/15 23:08
字数 510
阅读 251
收藏 1

博主从事嵌入式Linux上的软件开发,其中用到了很多库。博主发现这些库都是静态链接的。如果有多个程序都要用到这个库,而且这个库又比较大的时候。这将是一个莫大的空间浪费。

博主对比了一下本地编译与交叉编译下的日志输出,发现有以下比较可疑的信息:

上面左边76,77行,不能支持shared libraries。

打开 ./configure,找到对应的输出语句:

能否支持,是由 can_build_shared 这个变量决定的。

can_build_shared 在这里有修改:

去 confilg.log 中搜 11262 行的输出结果:

结果可以看出 dynamic_linker 的值是 “GNU/Linux ld.so”,不是 "no",所以不是这里影响了 can_build_shared 变量。

查得另一处影响的变量:

去 config.log 查得 ld_shlibs 的值为 no:

那为什么 ./configure 认为 rsdk-linux-gcc 不支持 shared library 呢?它的判断标准是什么?

博主翻了好几页,这 ./configure 真不是人看的,没有对缩进,而且好深的case嵌套。哎~,脑空量溢出了。

大概可以分析出跟 host   有关系,./configue 在分析是什么系统,根据系统来判断 ld_shlibs 的值。

如果是这样,很可能是我在 Makefile 中:

./configure --host=mips-linux 所致?将 "mips-linux" 改成 "linux" 再试试。

通过打调试信息,得知是在这里设置的 ld_shlibs 为 no 的:

与这个case相关的代码好大,好难看出到底是什么条件了。查得与 host_os 变量相关。

在调试信息中打印 host_os 变量的值,为 "elf" 。为什么是这个?而 host_os 在这里赋值:

从 config.log 中得知 ac_cv_host = mips-unkonwn-elf 。

ac_cv_host 来源:

这个由 config.sub 与 host_alias 所得。而 host_alias 来自于:

可以从 L984 得知,host_alias 来自于我们 ./configure 时传的 --host=mips 所得。

理一下思路:

我们转入了一个 --host=mips-linux,configure 执行 sh config.sub mips-linux,返回的结果是 "mips-unkonwn-elf",host_os 从中提取出 "elf",然后就不对了。 

那 --host=?? 得看 config.sub 如何转换。

© 著作权归作者所有

临峰不畏
粉丝 221
博文 187
码字总数 98583
作品 0
深圳
架构师
私信 提问
memcached安装步骤

一:资源 memcached 官方网站: memcached版本: 依赖 libevent: libevent下载地址: 二:安装 libevent-1.4.12 解压: 编译安装,可以选择默认安装,也可以指定安装路径,默认安装路径为:...

燃犀
2018/01/29
20
0
【FastDFS】FastDFS+FastDHT完成文件上传去重

一、前言 最近公司让我搞FastDFS分布式文件系统。整个集群环境已经搭建成功啦。但是有一个问题一直困扰着我,那就是重复文件的上传。即使是同一个文件,多次上传,返回的id也是不一样的。这样...

qq_26545305
2018/04/24
0
0
"error while loading shared libraries: xxx.so.x" 错

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No suc...

天下杰论
2015/06/26
293
0
动态库连接问题

动态库连接问题 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared objec...

曾永刚
2013/12/31
0
0
2. Jetson TX2--python3下编译安装opencv3.4

jetpack3.2自带了opencv3.3,但是只提供了python2.7的编译版本,所以也只能在python2.7下使用,我本来以为有什么更简单的方法链接到python3中,但是遍查资料也没人说过这个东西,直到我找到一...

和蔼的zhxing
2018/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

huangkejie
37分钟前
5
0
JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
54分钟前
95
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
今天
5
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
今天
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部