我想为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
所以我的问题是,为什么程序没有编译?
答案 0 :(得分:1)
很难根据您提供的信息弄清楚发生了什么 - 您可能需要自己解决这个问题。我会尝试在这里包含一些指示。一个好的开始就是设置PKG_CONFIG_DEBUG_SPEW
环境变量......
最可能的原因是某些环境变量和/或被调用的pkg-config不同。很难确切地说 它们可能有什么不同,但valac
正在做的只有invoking pkg-config
。
为了确定要执行哪个pkg-config
,valac
首先查找--pkg-config
命令行选项,如果不存在,则查找PKG_CONFIG
环境变量(有关逻辑,请参阅compiler/valacompiler.vala)。如果不存在,则只会调用pkg-config
(该部分位于codegen/valaccodecompiler.vala,Vala.CCodeCompier.compile
方法。)
从那里,pkg-config
接管。 pkg-config
man page解释了它如何搜索文件;基本上是PKG_CONFIG_PATH
。再次,启用调试spew可能是最佳起点。