GNOME API是否存储在* .so文件中?

时间:2012-04-27 23:25:22

标签: gnome

像在Windows内的那些API,user32.dll等,是否存储在* .so文件中的GNOME API?

如果是这样,他们在哪里?我可以在程序中将它们用作共享库吗?

如果没有,他们是什么?

2 个答案:

答案 0 :(得分:0)

.so是“共享对象”,称为动态库,不同于“.a”,它们是静态库。 我认为在Windows系统中只有.dll(动态链接库)。

Gnome API,因为gnome只是一个桌面环境,它使用其他软件元素,如Nautilus(它的窗口管理器)等,有可执行文件和库(我想混合静态和动态)。 此外,它将使用其他库,如libpng或libjpeg用于图像,libalsa用于声音等。 用于GUI的GTK(gnome工具包)

最后更多可能在/ usr / lib / usr / share / lib / usr / X11 / lib ...和类似的路径

答案 1 :(得分:0)

GNOME只是一个桌面环境 - 它为您提供了管理桌面的高级功能,在Window Manager之上,管理X.org之上的窗口,等等。

没有(单个且定义明确的)GNOME API集:您使用来自各种项目的各种库。一般来说,GNOME的东西使用GTK +作为他们的图形库,加上许多其他的库,一些非常类似于GNOME \ GTK,而另一些则更为通用。您可以在这里查看信息[1]

在你的系统上,你会在某处的.so对象中找到它们的二进制文件(例如/ usr / lib,/ usr / share / lib等)。

要在程序中使用,您必须#include相应的标头,例如#include <gtk/gtk.h>才能使用GTK库(默认情况下不会安装标头)在许多发行版中,例如在Debian和Ubuntu中,你必须使用apt-get下载lib{libraryname}-dev包。

编译,您必须告诉链接器和编译器您要编译的库的位置。为此,您可以使用pkg-config [2]为大多数库找到正确的gcc -L-I开关(或者您可以设置IDE - 或指示您的Makefile - 执行此操作那)

[1] http://developer.gnome.org/

[2] https://en.wikipedia.org/wiki/Pkg-config