免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3059 | 回复: 6
打印 上一主题 下一主题

应用程序裁剪 [复制链接]

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-08 23:03 |只看该作者 |倒序浏览
把软件移植到板子上去的时候太大了,看它的Makefile里面,写着一些库是用来测试的,就想把这些库去掉,各位大神,linux怎么在编译的时候去掉那些库啊?

求教

ps:还是比较喜欢在内核版上提问

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
2 [报告]
发表于 2011-10-08 23:07 |只看该作者
./configure --help 可以看到那些依赖关系,是直接修改configure文件么,但是grep的时候看到这个库出现的地方只有Makefile中,而configure中没有

论坛徽章:
0
3 [报告]
发表于 2011-10-09 16:38 |只看该作者
一个应用程序可能会动态依赖某些.so库,也可能将某些.a库静态编入到可执行文件中,根据你的上述需求,可以从两个地方入手,第一,在运行configre配置时,将不需要的库通过--without-xxxx来拿掉,其次在Makefile中,可以将没有必要的 -lxxx字样的库拿掉,前提是不出现编译错误。

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
4 [报告]
发表于 2011-10-09 22:36 |只看该作者
回复 3# cuweike


    首先谢谢了,觉得第一种方法实现的概率大一些,有一些测试库,没必要加进去。
还有就是我觉得在./configure 时候可以把一些不必要的default=yes的选项 设置成no,这样也能减小大小,好处是编译绝对能过,但是软件能不能用 又成一个问题了。


eg: ./configure --with xxxx=no,一般这样写


还有请问下 “没有必要的 -lxxx字样的库”,能不能说具体点,谢谢了。   是l开头的库一般都是没必要的么?

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
5 [报告]
发表于 2011-10-10 22:57 |只看该作者
今天继续看了这个问题,试了下 去掉-lxxx类型的库,虽然编译没通过,但是觉得离胜利不远了,方法应该就是这个方法,只是过程有点艰难啊

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
6 [报告]
发表于 2011-12-13 18:09 |只看该作者
最后的实现方式就是直接对代码进行了删改,把debug的代码全部删除,这里它的configure写的不好,不能控制是否去掉debug。

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
7 [报告]
发表于 2011-12-13 22:58 |只看该作者
回复 1# xbjpkpk


    用的什么库?
glibc大一些,uclib小一些。debug信息要strip掉
不用的driver, 模块不要选
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP