没有X windows环境时自包含GTK应用程序

时间:2009-09-05 12:14:26

标签: linux gtk x11

我正在使用一个非常简化的Linux版本,我想在没有安装X窗口环境的系统上创建一个自包含的GTK应用程序。 我想使用GTK GUI类和小部件,而不是创建禁用GUI的服务器版本。

唯一可以期待的是工作的glibc。

根据我的理解,它将涉及以下内容:

  • 将GTK lib与X库静态链接。
  • 将我的应用程序与上述库静态链接。

    有什么需要注意的,一个(有点)新手可以完成它。我使用谷歌,但(一些可用的)信息飞过我的脑海。

  • 4 个答案:

    答案 0 :(得分:5)

    GTK和X是独立的程序。您通常需要同时安装两个程序才能运行。或者,您可以通过为GTKfb切换GTK来使用Linux framebuffer。如果您不想分发库,则需要静态编译GTKfb及其依赖项。如果你这样做,请仔细阅读LGPL。 Red Hat有一篇关于使用GTKfb构建小型应用程序的论文:http://www.redhat.com/f/pdf/gtkfb.pdf

    答案 1 :(得分:2)

    X库是用于连接X11服务器的X11客户端库。您的设备不运行此类服务器,X11客户端库将没有任何帮助。在嵌入式设备上,好的选择可能是使用直接访问帧缓冲区(例如,gtk-directfb,gtk-fb)

    答案 2 :(得分:0)

    你应该能够做到这一点;然而,大多数X / Gtk库通常是动态编译的,虽然它们应该静态编译,但您可能会遇到一些比特腐烂。

    您是否考虑过将所有必需的共享库与您的应用程序捆绑在一起?您可以通过shell脚本包装器启动应用程序,该包装器设置库搜索路径以指向包含共享库的目录。

    这类似于Firefox在Linux上用于插件路径的方法。

    答案 3 :(得分:0)

    您可以使用X Virtual Framebuffer。在Debian上,它是xvfb包。以下是包描述:

      

    Xvfb提供了一个可以的X服务器   在没有显示的机器上运行   硬件,没有物理输入   设备。它模仿了一个愚蠢的人   framebuffer使用虚拟内存。该   这个服务器的主要用途是   打算进行服务器测试,但是   它的其他新用途   发现,包括测试客户   对不寻常的深度和屏幕   配置,进行批处理   用Xvfb作为背景渲染   发动机,负载测试,作为辅助   将X服务器移植到新服务器   平台,并提供一个不引人注目的   运行没有的应用程序的方法   真的需要一个X服务器,但坚持   反正有一个。

         

    此软件包还包含一个   便利脚本叫做xvfb-run   这简化了自动化   在虚拟中执行X客户端   服务器环境。这方便   脚本需要使用xauth   程序

         

    有关X.Org的更多信息可以   发现于:

         

    http://www.X.org

         

    http://xorg.freedesktop.org

         

    http://lists.freedesktop.org/mailman/listinfo/xorg

         

    此软件包是从X.org构建的   xserver模块。