头文件和链接

Although we have shown the compilation command for the simple example, you really should use the automake and autoconf tools, as described in "Autoconf, Automake, Libtool", by G. V. Vaughan et al. The examples used in this book are included in the gtkmm-documentation package, with appropriate build files, so we won't show the build commands in future. You'll just need to find the appropriate directory and type make.

为了简化编译的过程,我们使用了 pkg-config,它存在于所有的(也许已经安装的) gtkmm 安装文件中。这个程序“知道”编译使用了 gtkmm 的程序所需要的编译器选项。--cflags 选项使 pkg-config 输出一个包含编译时需要用到的头文件的目录列表;而使用 --libs 选项将得到一个需要编译器去链接的库列表和一个用于寻找它们的目录列表。试着在你的命令行提示符下运行它,看看在你的系统上会有什么样的结果。

However, this is even simpler when using the PKG_CHECK_MODULES() macro in a standard configure.ac file with autoconf and automake. For instance:

PKG_CHECK_MODULES([MYAPP], [gtkmm-3.0 >= 3.8.0])
This checks for the presence of gtkmm and defines MYAPP_LIBS and MYAPP_CFLAGS for use in your Makefile.am files.

gtkmm-3.0 is the name of the current stable API. There was an older API called gtkmm-2-4 which installs in parallel when it is available. There were several versions of gtkmm-2.4, such as gtkmm 2.10 and there are several versions of the gtkmm-3.0 API. Note that the API name does not change for every version because that would be an incompatible API and ABI break. Theoretically, there might be a future gtkmm-4.0 API which would install in parallel with gtkmm-3.0 without affecting existing applications.

Note that if you mention extra modules in addition to gtkmm-3.0, they should be separated by spaces, not commas.

Openismus 有更多 帮助使用 automake 和 autoconf 的基础知识