Vala程序无法在MSYS2下编译 - 找不到pkg-config包

时间:2015-07-25 05:42:36

标签: vala pkg-config msys2

我想为Vala编程语言编译GTK +测试程序。我将代码保存为main.vala并使用命令行调用编译器

valac --pkg gtk+-3.0 main.vala

但这不起作用。我收到错误:

Package gobject-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gobject-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gobject-2.0' found
error: pkg-config exited with status 1

为什么pkg-config无法找到该包?当我打电话

pkg-config --list-all | grep gobject-2.0

得到错误,但

gobject-2.0     GObject - GLib type, Object, Parameter and Signal library

所以我的问题是,为什么程序没有编译?

1 个答案:

答案 0 :(得分:1)

很难根据您提供的信息弄清楚发生了什么 - 您可能需要自己解决这个问题。我会尝试在这里包含一些指示。一个好的开始就是设置PKG_CONFIG_DEBUG_SPEW环境变量......

最可能的原因是某些环境变量和/或被调用的pkg-config不同。很难确切地说 它们可能有什么不同,但valac正在做的只有invoking pkg-config

为了确定要执行哪个pkg-configvalac首先查找--pkg-config命令行选项,如果不存在,则查找PKG_CONFIG环境变量(有关逻辑,请参阅compiler/valacompiler.vala)。如果不存在,则只会调用pkg-config(该部分位于codegen/valaccodecompiler.valaVala.CCodeCompier.compile方法。)

从那里,pkg-config接管。 pkg-config man page解释了它如何搜索文件;基本上是PKG_CONFIG_PATH。再次,启用调试spew可能是最佳起点。