社区
Linux/Unix社区
帖子详情
程序文件大小优化问题(unix)
冰山之海
2011-05-12 05:43:23
我参与了一个机顶盒SDK的项目开发.
客户方说我编译出的 动态库和可执行文件太大了. 我想拜求各位老大,怎么优化可以将make出来的包变小且不影响功能使用啊?
是不是还有什么makefile的参数可以填或将公用的东西,写成动态库?
重谢各份大侠~~
...全文
59
9
打赏
收藏
程序文件大小优化问题(unix)
我参与了一个机顶盒SDK的项目开发. 客户方说我编译出的 动态库和可执行文件太大了. 我想拜求各位老大,怎么优化可以将make出来的包变小且不影响功能使用啊? 是不是还有什么makefile的参数可以填或将公用的东西,写成动态库? 重谢各份大侠~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yanghuajia
2011-05-13
打赏
举报
回复
编译时加 -Os参数,
对应so 文件 strip --strip-unneeded *.so
对exec 文件 strip -s xx
这样看看还差多少
Arnold9009
2011-05-12
打赏
举报
回复
想办法压缩代码吧。。。。。。
冰山之海
2011-05-12
打赏
举报
回复
strip过了,减少不了多少~~一小点变化~~ 像.pdr .hr_fame什么的,是不是都可以干掉
[Quote=引用 6 楼 justkk 的回复:]
用strip 命令处理一下看看
[/Quote]
justkk
2011-05-12
打赏
举报
回复
用strip 命令处理一下看看
冰山之海
2011-05-12
打赏
举报
回复
To 4楼: 我搞的是unix下的工程~~
tongfei369
2011-05-12
打赏
举报
回复
一、复制ORACLE和HMIS文件夹:
如果原来ORANT和HMIS文件夹在C:盘,复制到新的系统还要放在C:盘;原来的文件来在D:盘,复制到新的系统也要放到D:
二、导出原系统注册表,并导入新系统的注册表中:
导出方法:
单击开始->运行->键入“regedit”并回车,打开注册表编辑器;
在注册表编辑器中左边树中依次展开“HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE”;
在ORACLE项上点击鼠标右键->导出,出现导入文件对话框,在文件名处填写“ORACLE”,单击保存,出成注册表文件(要记着保存的位置哟!);
用相同的方法导出“HKEY_LOCAL_MACHINE\SOFTWARE\yyjsxt”分支,保存为“HMIS”注册表文件;
导入方法:
将刚才导出的两个注册表文件“ORACLE.REG”和“HMIS.REG”复制到新系统任意位置,并依次双击这两个注册表文件;
导入时出现两个对话框,一个是问是否导入的(肯定选是了),另一个是导入成功的对话框,点确定了!
三、在新系统的PATH中加入ORACLE的BIN路径:
方法:
在新系统中,我的电脑->鼠标右键->属性,出现系统属性窗口;
选“高级”选项卡->单击“环境变量”按钮,出现环境变量设置框;
上部为用户环境变量,下部为系统环境变量,在下部系统环境变量列表中选择“PATH”,单击下部的“编辑”按钮;
如果ORANT在D:盘,在变量值的尾部添加“;D:\ORANT\BIN”(那个分号用来分隔不同的文件夹,如果变量值尾部原来有个分号,就不必添加分号了),在C:盘就是“;C:\ORANT\BIN”
OK,现在我们到HMIS文件件下试一下,将应用程序的快捷方式发送到桌面,完成!
冰山之海
2011-05-12
打赏
举报
回复
readelf *.so -S 出来的值,是不是有些段是可以去掉的?.text还是比较大的
Name Size
000000
.interp 000013
.note.ABI-tag 000020
.note.gnu.build-i 000024
.hash 0016f0
.gnu.hash 0013b8
.dynsym 003b10
.dynstr 01d477
.gnu.version 000762
.gnu.version_r 000160
.rel.dyn 001288
.rel.plt 000ae0
.init 000030
.plt 0015d0
.text 0c4f2c
.fini 00001c
.rodata 0089e2
.eh_frame_hdr 00719c
.eh_frame 022748
.gcc_except_table 01ded1
.ctors 000100
.dtors 000008
.jcr 000004
.data.rel.ro 002350
.dynamic 0000f0
.got 000a98
.got.plt 00057c
.data 00039c
.bss 01198c
.comment 000023
.shstrtab 00011b
.symtab 018150
.strtab 088434
pierre000
2011-05-12
打赏
举报
回复
你这个难度比较大,要看看哪些没有用,哪些有用了!!
「已注销」
2011-05-12
打赏
举报
回复
是不是数据段太大? 看看能不能优化
Linux
程序
设计从入门到实战
《Linux
程序
设计》主讲:丁宋涛 C/C++属于系统级别的编程语言,作为开源软件的代表作品Linux操作系统是所有C/C++
程序
员都应当熟悉和掌握的。本门课程从实战出发,降低了初级C/C++
程序
员进入Linux
程序
设计的门槛。本...
FFS(快速文件系统)–
Unix
文件系统
FFS(Fast File System),诞生于80年代的一款文件系统,对其前任进行了大量的性能
优化
,成为了现代类
unix
文件系统的始祖,其很多设计思想在今天依然有借鉴意义。本篇文章中,我们会详细阐述FFS的设计思想,剖析它的
优化
策略,并考量这些策略背后的利弊。优势:降低block内的碎片率,提高存储空间利用率;劣势1:数据传输以block为单位,block较小可能导致传输速率的低下,此时寻道时间占据更大的比重,进一步恶化磁盘的IO效率;
week3-
unix
文件标准输入输出(课本ch02)
Week3-文件标准输入输出(课本ch02) 2.1
Unix
输入输出基本概念 1.打开文件:在任何一种操作系统中,
程序
开始读写一个文件的内容之前,必须首先在
程序
与文件之间 建立连接或通信通道,这一过程称为打开文件。 2.打开文件两种方式: 文件描述字:返回一个文件描述字 流:返回一个流 3.系统中关于I/O的函数也分为两大类: 一类针对文件描述字操作,另一类针对流操作。 4.关闭文件:当己完成对文件的读写之后,可以通过关闭文件而终止
程序
与文件的这种连接。一旦关闭 了一个文件描述字或者一个流,就不能再
Unix
/Linux环境使用(基础篇)
1965贝尔实验室(Bell Labs)加入一项由通用电气和麻省理工学院合作的计划,该计划要建立一套多使用者、多任务、多层次的MULTICS操作系统。后来因为项目太为复杂失败。1969:其主要开发者Thompson(后被称为
UNIX
之父)和Ritchie领导一组开发者,开发了一个新的多任务操作系统—UNICS,后来被改名为
Unix
,最初的
Unix
是用B语言和汇编语言混合编写而成。1971:两人在贝尔实验室共同发明了C语言,并于1973用C语言重写了
Unix
。1974。
Linux系统和
UNIX
系统简介
1.
UNIX
操作系统简介
UNIX
操作系统是一个多用户、多任务的操作系统,它于1974年问世。与一般操作系统一样,
UNIX
系统也是运行在计算机系统的硬件和应用
程序
之间,负责管理硬件并向应用
程序
提供简单一致的调用界面,控制应用
程序
的正确执行。
UNIX
与其他操作系统的不同之处主要有两点:
UNIX
与其他操作系统的内部实现不同;
UNIX
与其他操作系统的用户界面不同。 除了提供内核来完成传统
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章