2

我想为 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

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

4

1 回答 1

1

根据您提供的信息很难弄清楚发生了什么——您可能必须自己弄清楚。我将尝试在此处包含一些指针。一个好的起点是设置PKG_CONFIG_DEBUG_SPEW环境变量……</p>

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

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

从那里,pkg-config接管。pkg-config手册页解释了它如何搜索文件;基本上是PKG_CONFIG_PATH. 同样,启用调试喷射可能是最好的起点。

于 2015-07-26T06:11:49.783 回答