首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Gprbuild中编译C的Shell命令

在Gprbuild中编译C的Shell命令
EN

Stack Overflow用户
提问于 2019-02-27 21:09:42
回答 2查看 237关注 0票数 1

使用GtkAda,我尝试使用资源API将Glade文件直接包含在我的代码中。

为此,我们可以使用https://developer.gnome.org/gio/stable/glib-compile-resources.html从一组资源生成C代码,然后将其链接到Ada代码。

问题在于,这个C代码需要Gtk包含,我们通常从Linux下的pkg-config命令中获得Gtk包含,例如

代码语言:javascript
复制
gcc -c -x c `pkg-config --cflags gio-2.0` myglade.gresource.c

我想知道如何在GPRBuild项目文件中提供相同类型的信息。

FYI,我已经尝试在C语言编译器包中使用pkg-config命令,但没有成功。当然,我成功地手工构建了,但这有点长:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-27 22:44:31

这可能对你有用:

代码语言:javascript
复制
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;

然后

代码语言:javascript
复制
gprbuild -P config_demo -XPKG_CONFIG="`pkg-config -cflags gio-2.0`"
票数 5
EN

Stack Overflow用户

发布于 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的脚本语言,或者使用其他您喜欢的工具。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54914533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档