我正在尝试使用 Scons 构建一个简单的 GTK C 应用程序(特别是一个 MATE 小程序),因为我无法使用自动工具。
在我的 SConstruct 文件中,我有这个:
env = Environment(tools=['default', 'scanreplace'], toolpath=['tools'])
env.ParseConfig('pkg-config --cflags --libs gtk+-2.0')
env.ParseConfig('pkg-config --cflags --libs glib-2.0')
env.ParseConfig('pkg-config --cflags --libs libmatepanelapplet-3.0')
应该找到正确的目录等。在终端中运行 pkg-config 可以正常工作,例如:
$ pkg-config --cflags --libs gtk+-2.0
-pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
但是,当我运行 scons 时,这是输出的一部分:
gcc -o .build/resource-applet -pthread src/resource-applet.h .build/src/resource-applet.o -lmate-panel-applet-3 -lmateconf-2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0
src/resource-applet.h:22:21: fatal error: gtk/gtk.h: No such file or directory
任何地方都没有 -I 标志,所以据我了解,gcc 找不到头文件。
那么为什么 scons 不给 gcc -I 标志,我能做些什么来解决它?