"); //-->
最近比较忙,主要就是把windows的东西完全porting的Linux下,而且尽量支持多的Linux发行版,最好全部,去掉不说Windows下调用了Win32的library,没有办法,只有自己write code外,简单说一下让Linux下的software support Linux大多数发行版的过程,以VNC为例子,我当时选择的是x11vnc,我主要是用vnc server程序,当时操作的步骤有一下几点:
1、download x11vnc的source code, version 为0.9.12,貌似The newest is 0.9.13
2、选择宿主OS,我当时要求要support RedHat/CentOS系类、SUSE Linux系类、Ubuntu系列,前提只研究在kernel version > 2.6,再低就不玩,想着中情况,肯定要选择kernel版本最低,这些发行版中,我只有选择RedHat5.4,但是还要看libc可以支持的最低版本,RedHat5.4 Kernel version:2.6.18,这些发行版中最新的就是Ubuntu12.04(当时),恰好libc可以支持RedHat5.4,这样就可以肯定开发宿主OS为redHat5.4了
3、如果要x11vnc库running在尽可能多的Linux发行版上,不用说肯定要把x1vvnc编译为static,步骤肯定按照默认的编译方法,得到的x11vnc必然是依赖好多.so档案,可以使用ldd查看到底依赖哪些,但是个人发现,ldd也不是肯准确,但是可靠度还可以,找出依赖.so对应的.a档案,修改Makefile,理论上是可以编译通过,但是这个依赖是有递归的关系,Makefile的组织方式就不用多说,最常用的望后边放,找出每个.so档案依赖的文件后,就可以编译可以了,当然size肯定也很大,你可以strip一下,还是很不错
4、就在其他发行版上验证你编译出来的是不是都可以running,这个的确很耗时间,每个发行版还有不少的版本,这个就没有办法,只有一个一个验证
5、最头疼就是,理论上低版本上编译过可以在高版本上running,但是发现,还不一定,我在RedHat5.4上编译过,结果发现在Redhat6.2还是无法running,反而在Redhat6.2上编译可以在5.4上running,这个可以理解,6.2上libc是support5.2的kernel,但是在6.2上编译的在SUSE11 Linux是无法runnning,SUSE11的kernel的版本是2.6.19,针对x11vnc的情况是在X11 library,x11 library依赖的一些键盘操作的一些library,这一款差异比较多,当然中间也编译过glibc,这就不多说了,主要为x11vnc编译服务
总之,如果要get到一款support所以linux发型版的software,大致思路就是这些,也不一定要找一个最老的版本,找中间的可以兼顾最新&最老的发行版,编程为static是肯定的道路,但是有时间完全static比较困难是,可以减少对.so的依赖,这是一个很不错的方法
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
新思科技暴跌背后最根本原因是中国吗?
帮个忙看看!
巧手将AirPod变成具有FM功能的耳机
用于尖端IC的无焊接连接
时间测量电路
台积AZ厂荒漠「点石成金」 印度、越南力邀台链再筑晶片梦?
依靠控制机器人如何取决于精确计时
香港生产力促进局首秀“中国国际工业博览会”
意法半导体同意放弃Agrate的裁员计划
windML的相关问题
用NE555电路组成的声光型逻辑笔
有数字显示的电池供电气压计电路
ppc的汇编bclr 20,0是什么意思
CP386通用编程器使用指南
黄仁勋紧张中国大陆市占率危险 急推新款用台积电5纳米
CP76X 编程器使用指南
模拟式频率测量仪电路
“shangziyun”的跑马灯视频
“shangziyun”STM32F103ZET6读写24C02超级终端显示视频
使用Raspberry Pi 5和Hailo-8L AI进行物体识别和距离测量
频率和时间信号发生器电路
具可编程基准的同步降压型稳压器
CP76X 编程器软件V2.2版 (英)
Gartner发布2025中国信息与通信技术成熟度曲线
“奋斗STM32”的超声波测距串口显示视频
CP76X 编程拷贝机使用指南
CP76X 编程器软件V2.2版
“zangchao”STM32与51单片机串口通信演示视频
可以提供arm7芯片
各位熟悉zinc的大虾请帮帮忙 help! help!