使用GtkAda,我尝试使用资源API将Glade文件直接包含在我的代码中。
为此,我们可以使用https://developer.gnome.org/gio/stable/glib-compile-resources.html从一组资源生成C代码,然后将其链接到Ada代码。
问题在于,这个C代码需要Gtk包含,我们通常从Linux下的pkg-config命令中获得Gtk包含,例如
gcc -c -x c `pkg-config --cflags gio-2.0` myglade.gresource.c我想知道如何在GPRBuild项目文件中提供相同类型的信息。
FYI,我已经尝试在C语言编译器包中使用pkg-config命令,但没有成功。当然,我成功地手工构建了,但这有点长:)
发布于 2019-02-27 22:44:31
这可能对你有用:
project Config_Demo is
Pkg_Config := external_as_list ("PKG_CONFIG", " ");
package Compiler is
-- only this file needs the extra switches
for Switches ("myglade.gresource.c") use Pkg_Config;
end Compiler;
end Config_Demo;然后
gprbuild -P config_demo -XPKG_CONFIG="`pkg-config -cflags gio-2.0`"发布于 2019-02-27 22:17:32
您最好的选择是做GtkAda所做的事情:查看它的shared.gpr.in文件,它使用令牌@GTK_LIBS_GPR@,该令牌@GTK_LIBS_GPR@将被配置脚本所取代,从而提供一个可用的shared.gpr。
问题是,您需要发出pkg-config调用,并以某种方式从结果构建您的gpr文件。GPRBuild没有为您完成此操作并处理结果的能力。如果您对GNU自动工具感到满意,那么您可以进一步了解GtkAda是如何实现它的:
GTK_LIBS_GPR是在aclocal.m4中使用一个宏设置的,该宏将C样式的标志转换为GPR数组。值来自GTK_LIBS,它通过pkg查询这里。
如果您不习惯使用GNU自动工具,可以使用基本的shell突击队编写配置脚本,这是一种类似Python的脚本语言,或者使用其他您喜欢的工具。
https://stackoverflow.com/questions/54914533
复制相似问题