gtk+及相关依赖包介绍
发布时间:2020-05-23 03:44:19 所属栏目:程序设计 来源:互联网
导读: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 i
RequirementsPackagesYou 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 ReleaseThere 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 bundleIf you find choosing,downloading and unpacking the individual zip archives below a chore,here is an all-in-one
GTK+ individual packagesThird Party DependenciesYou 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
About libpngThis 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 zlibThis is the compression library used by libpng,libjpeg and libtiff.About win_iconvwin_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.dllGLib 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 gettextThe 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 libtiffThese libraries are used by the gdk-pixbuf library in GTK+,and for instance by GIMP.About pkg-configThis 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 adatabasespecifying 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 freetypeThis is used by GIMP and by Pango's pangoft2 library. For just GTK+ applications you will not need it.About fontconfigFontconfig 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 libexpatThis is required by fontconfig.About direntThis 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-libintlproxy-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] (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


