做了一个程序,想在其他机子上运行,但是说GTK版本太低,请问怎么发布程序?

bat603 2006-08-31 11:12:54
在 windows下发布程序后,不用考虑系统是不是会有对应的库函数,但是在linux下怎么做呢?我用的gtk是2.0,另一台机子时低版本,我怎么办才能在所有的机子上运行呢?至少是linux下,不用考虑系统包的版本?怎么发不到windows下?
...全文
210 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fytzzh 2006-08-31
  • 打赏
  • 举报
回复
windows是因为机器上都有这个包,在linux下系统都是定制或自己编译的并且有太多的linux发行版不可能保证大家的环境都是一样的。
bat603 2006-08-31
  • 打赏
  • 举报
回复
难道就没有像 windows下,经过联接后,就不用什么包了么?
fytzzh 2006-08-31
  • 打赏
  • 举报
回复
在安装的时候检查系统有没有对应的包,如果没有应该安装此包。
bat603 2006-08-31
  • 打赏
  • 举报
回复
非常感谢!
fytzzh 2006-08-31
  • 打赏
  • 举报
回复
编译静态库:
   gcc -c test.c
ar rcs libtest.a test.o

使用:gcc -static -o main main.o $(PATH)/libtest.a
bat603 2006-08-31
  • 打赏
  • 举报
回复
呵呵,没有问题的,非常感谢你,让我明白了,那么请问怎么静态编译?还有
,你说得如果做成rpm格式,是不是不用考虑这些了?我做了一个小软件,想在局域网内测试,所以不用在乎是不是可以升级,麻烦你了,所有的分都给你!
zhang_h 2006-08-31
  • 打赏
  • 举报
回复
哎呀,怎么用新注册的号发了。呵呵

zhang_h 和 fytzzh都是我。一个人。如果楼主给分的话就给fytzzh
zhang_h 2006-08-31
  • 打赏
  • 举报
回复
所以linux下的软件都是在机器上现编译的,在编译前都是先执行./configure来检测系统的库是否存在,版本是否满足。然后才执行make. rpm是已经编译好的二进制可执行文件,所以安装的机器的环境是什么就不清楚了。所以rpm也不能保证。

你可以不依赖太多的第三方库,有些库是所有的系统都支持,尽量使用这种的。
当然还有,你可以把你的程序编译成静态的,这样就不去管目标机器是否存在这些库。当然这样的损失就是可执行文件变大,并且不光维护自己的程序,当你使用的库也升级的时候,你也不得不重新编译你的程序。

所以楼主衡量下,找适合你的方法。
bat603 2006-08-31
  • 打赏
  • 举报
回复
所以linux下开发的软件可移植性就差,是这样么?rpm格式的也不能保证?难道就没有办法可以设计出一个软件不用在乎这些么?

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧