GTK程序在KDE发布问题

samson_fan 2011-08-23 11:39:18
GTK写的程序如何在KDE上发布呢?总是缺少so库运行不起来

是不是要静态编译好点呢?

比如我在ubuntu上codeblocks用GTK 2.8.10写的GTK程序,在CentOS KDE上跑少了libgio-2.0.so.0和libpcre.so.3,有那位朋友做过类似的发布?

另外有没有比较好的GTK书本介绍一下,谢谢各位!
...全文
359 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
John-yi 2011-12-28
  • 打赏
  • 举报
回复
静态编译不是编译gtk软件包

只要在编译你的程序时加上-static就可以了

samson_fan 2011-09-22
  • 打赏
  • 举报
回复
没人知道吗?
jackyjkchen能否再次回答一下?

1.如何知道自己写的程序缺少那些依赖库? 用ldd吗?
2.如何找到依赖库?
3.运行或安装时依赖库应该放在什么位置?

如果有例子参考就最好了,谢谢客位
samson_fan 2011-09-21
  • 打赏
  • 举报
回复
发现gtk静态编译不是简单的事,决定放弃

但gtk的程序如何在没有gtk环境中运行呢?
是要把用到的运行库也copy过去吗?

我把gtk写的应用放到KDE上跑,报没有找到 libpcre.so.3,但我开发的ubuntu也没有找到这个文件,怎么回事呢?
samson_fan 2011-08-24
  • 打赏
  • 举报
回复
我在 ftp://ftp.gtk.org/pub/gtk/2.24/ 下载了gtk+-2.24.5.tar.bz2
并按照 http://developer.gnome.org/gtk/2.24/gtk-building.html 进行编译

但出现以下问题
configure: error: Package requirements (glib-2.0 >= 2.27.3 atk >= 1.29.2 pango >= 1.20 cairo >= 1.6 gdk-pixbuf-2.0 >= 2.21.0) were not met:

No package 'glib-2.0' found
No package 'atk' found
No package 'pango' found
No package 'cairo' found
No package 'gdk-pixbuf-2.0' found

编译命令如下
./configure --enable-maintainer-mode 'CFLAGS=-g -00' 'CXXFLAGS=-g -00' 'JFLAGS=-g -00' 'FFLAGS=-g -00' --enable-shared=no --enable-static=yes

是什么问题呢?是不是每个用到的模块都要下对应版本的源码进行编译?
jackyjkchen 2011-08-23
  • 打赏
  • 举报
回复
比较笨的办法是自己带上依赖包,Windows程序许多是这样的,因为Windows没有集中的软件包依赖管理系统。

比较优雅的办法是兼容发行版的软件包管理,对于ubuntu,就做成deb,然后指定依赖gtk,这样的话要么和gtk一起装,要么就别装
jackyjkchen 2011-08-23
  • 打赏
  • 举报
回复
可以静态编译,你不能直接利用发行版的gtk库,需要下载gtk自己重新编译一份静态版,可能比打包deb、rpm更麻烦
samson_fan 2011-08-23
  • 打赏
  • 举报
回复
还有一点想问一下,GTK程序可以使用静态编译吗?静态编译是否就可以解决KDE缺少GTK动态库问题?
samson_fan 2011-08-23
  • 打赏
  • 举报
回复
谢谢jackyjkchen给了这么多提示

我是想正经发布软件,但因为我的软件是网络拨号器,不正常启动就不能上网,界面好丑倒不是问题。所以一定要能直接运行。那么我有什么办法解决KDE环境的问题呢?
jackyjkchen 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 samson_fan 的回复:]

jackyjkchen
两种方法能否具体点呢?特别是第二种,linux开发我是超级新手。

另外GTK的程序都能在GNOME上直接运行吗?我看资料说GNOME直接支持GTK的
[/Quote]
你是正经发布软件还是单纯想让程序跑起来,只是想跑起来那在KDE环境下装个gtk包就行了,用发行版的软件仓库

正经开发软件的话,要么你源码发布,依赖关系丢给用户自己解决,你可以不管;要么花点时间好好学学deb和rpm等的打包

gnome基于gtk,所以肯定没问题(除非gtk版本有冲突)
samson_fan 2011-08-23
  • 打赏
  • 举报
回复
jackyjkchen
两种方法能否具体点呢?特别是第二种,linux开发我是超级新手。

另外GTK的程序都能在GNOME上直接运行吗?我看资料说GNOME直接支持GTK的

23,121

社区成员

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

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