加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

gtk+及相关依赖包介绍

发布时间:2020-12-13 20:32:24 所属栏目:百科 来源:网络整理
导读:Requirements Packages You will need to get the GLib,cairo,Pango,ATK,and GTK+ developer packages to build against GTK+. To run GTK+ programs you will also need the libpng and zlib packagages,and if your code uses gettext for internationalis

Requirements

Packages

You will need to get the GLib,cairo,Pango,ATK,and GTK+ developer packages to build against GTK+. To run GTK+ programs you will also need the libpng and zlib packagages,and if your code uses gettext for internationalisation and/or you want GTK+ internalisation,the gettext-runtime package.
The packages here are for people who develop software that uses GTK+. This page is not intended directly for end-users. It is expected that people who build installers for GTK+ applications for Windows bundle GTK+ with them.
These packages are not for developing or running programs that use the Cygwin Unix emulation environment. Cygwin has GTK+ packages available directly in its installer which you should use. Note that the Cygwin GTK+ uses the X11 backend,so you will need to also run an X11 server then when you run GTK+ programs on Cygwin,but presumably that is what Cygwin users want.
You are welcome to redistribute GTK+ binaries,including applications that bundle them,on other web sites,CD-ROM,and other media. You don't have to ask for permission. That's one of the points of Free Software. One important thing that the GNU licenses require is that you must also redistribute the source code. This usually means at least the gettext,GLib,GTK+,Pango and Atk sources.

What toolchain to use?

The most natural toolchain to use together with these packages would probably be the GNU compiler and other utilities. When targeting Windows,that combination is known as MinGW Using Cygwin tools to build non-Cygwin Windows binaries is not recommended unless you are very careful and look out for mixups.
It is possible to use these packages also with Microsoft's compiler. However,the DLLs use the msvcrt.dll runtime library. This means that also applications that use the DLLs should preferrably use the msvcrt.dll runtime. Specifically,this means that you should not use newer versions of the Microsoft compiler than Visual C++ 6 without knowing exactly what you are doing.

Which Windows versions?

The current GTK+ stack uses APIs that are available only on Windows 2000 or later. Long obsolete versions of GTK+ did run on Win9x and NT 4,too.

Stable Release

There are 3 types of download options below. Binaries provide only the DLLs and other files used you will need to run your GTK+-using application. Dev packages provide include files,import libraries,documentation and additional tools. Source packages provide the source code for the component in question.
If you want to repackage the necessary runtime files together with your application into an installer,you can choose to leave out for instance message catalogs for languages that your application isn't localised to anyway.

All-in-one bundle

If you find choosing,downloading and unpacking the individual zip archives below a chore,here is an all-in-one

bundle of the GTK+ stack including 3rd-party dependencies. This bundle contains both binaries and a lot of developer files,many of which are irrelevant to most developers. If you intend to redistribute the GTK+ run-time,you need to figure out which files you can leave out yourself. A new bundle will be provided whenever one of the packages it consists of is updated.

GTK+ individual packages

Package Version Downloads
GLib 2.20.0

Binaries

Dev

Sources
GTK+ 2.16.0

Binaries

Dev

Sources
Pango 1.24.0

Binaries

Dev

Sources
ATK 1.24.0

Binaries

Dev

Sources
cairo 1.8.6

Binaries

Dev

Sources

Third Party Dependencies

You won't need all of these packages to just use GTK+ Some of the optional packages are needed for building applications like GIMP on Windows. Required packages are illustrated with

.
Package Version Downloads
zlib 1.2.3

Binaries & Dev

win_iconv 20080320

Dev & Sources

GNU libiconv 1.9.1

Binaries & Dev

Sources

win_iconv DLL 20080320

Binaries & sources

gettext-runtime 0.17

Binaries

Dev

Sources

libpng 1.2.34

Binaries

Dev
-

libjpeg 6b

Binaries

Dev
-

libtiff 3.8.2

Binaries

Dev
-

pkg-config 0.23-2

Tool binaries

Sources

Freetype 2.3.6

Binaries

Dev

Sources

Fontconfig 2.4.2

Binaries

Dev

Source &

Patch

libexpat 2.0.0

Binaries
- -

dirent - -

Dev
-

proxy-libintl 20080918

Binaries & sources

About libpng

This is an image file format library used by GTK+,and required.
The libpng package linked to above provides libpng12-0.dll. This package is built by me (Tor Lillqvist). Previously the GTK+ stack was built against the gnuwin32 build of libpng. Confusingly,gnuwin32's older builds of libpng provided libpng13.dll,and their newer builds provided libpng12.dll. I don't know whether these builds actually are binary compatible even if the DLL name was different. To be safe,never rename DLLs.

About zlib

This is the compression library used by libpng,libjpeg and libtiff.

About win_iconv

win_iconv is an implementation of iconv for Windows by Yukihiro Nakadaira that has a much smaller footprint than GNU libiconv. The win_iconv package above includes the header file,static archive library and the source file. This library is linked statically into GLib and thus not needed separately at run-time.

About iconv.dll

GLib 2.12.4 and earlier link to iconv in a separate DLL,iconv.dll. This can either be the GNU libiconv iconv.dll,or the identically named win_iconv_dll one which obviosuly is intented to be a drop-in replacement.

About gettext

The GNU internationalization library. All of the GTK+ stack uses it,but through proxy-libintl (see below) so it is actually optional at run-time.

About libjpeg and libtiff

These libraries are used by the gdk-pixbuf library in GTK+,and for instance by GIMP.

About pkg-config

This program is useful for Makefiles and configure scripts and extensively used in building software according to the GTK+ and GNOME conventions using autotools. It uses a database specifying inter-dependencies among software packages. It is used to get the compile and link flags needed when building software using libraries that provide pkg-config data. This requires GLib 2.x.

About freetype

This is used by GIMP and by Pango's pangoft2 library. For just GTK+ applications you will not need it.

About fontconfig

Fontconfig is used by the FreeType2 backend in Pango (pangoft2) and by GIMP. Contrary to what many seem to think,fontconfig is in no way dependent on X11,so it does make some sense to use it on Windows. GTK+ does not use pangoft2,so you probably will not need this unless for GIMP. This is a slightly fixed version of fontconfig 2.4.2 from the date indicated.

About libexpat

This is required by fontconfig.

About dirent

This is the public domain implementation of dirent.h from MinGW. It is needed by Microsoft Visual C++ users that want to compile GLib. Not directly related to GLib.

About proxy-libintl

proxy-libintl is a very small static library. It acts as a proxy for the intl.dll from gettext-runtime,loading it dynamically,and failing gracefully. Fallback dummy functions are used if intl.dll isn't found. It is a static archive and the intent is to start linking this into the binaries in the GTK+ stack instead of referring directly to intl.dll. This enables application packagers to leave out the gettext-runtime binaries if they don't need or want to support i18n,without having to build own versions that don't use intl.dll.
When building DLLs against the proxy-libintl static library and using the GNU linker's auto-export feature (i.e. not using a .def file,and not using __declspec(dllexport)),it is a good idea to pass the -Wl,--exclude-libs=libintl.a in your LDFLAGS so that the libintl functions don't get exported from your DLL.



[url]http://www.gtk.org/download-windows.html[/url]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读