我已经将代码添加到现有的大型应用程序中,并且需要使GLib成为一项要求,因为我的代码依赖于它。对于开发,我只是手动编辑Makefile以添加
-lglib-2.0
LIBS =变量和
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include $<
以$ {CC}开头的行。
但是,我对如何在应用程序中创建永久/可移植性感到茫然 - 即,当某人将来执行./configure时,生成的Makefile也应该包含上述内容(因为这些依赖于pkg-config输出,我已经学会了)。我更新的代码库包括gnu工具链中的以下文件:
Makefile.in
Makefile.manual
config.h.in
configure
configure.in
我只有少数几个CS学位和几年的开发经验,所以GNU工具链对我来说仍然是完全无法穿透的。 : - /从谷歌搜索,我的印象应该是be a configure.ac file或我应该添加一个宏来要求glib的东西,但是包中没有包含这样的文件而我正处于学习了整个automake / autoconf / configure / makefile业务的无助感。提前感谢任何建议或指示!
答案 0 :(得分:2)
configure.ac
中,列出了每个依赖项,因此检查GLib应该在那里。从此文件中,生成最终的configure
shell脚本。PKG_CHECK_MODULES
宏。 Autotools Mythbuster是一个很好的来源,描述了如何做到这一点。最后归结为将这些行添加到configure.ac
:
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([GLIB], [glib-2.0])
以及这些行到Makefile.am
:
foo_CXXFLAGS = $(GLIB_CFLAGS)
foo_LIBS = $(GLIB_LIBS)