2012-03-22 191 views
2

我想更改pkg-config查找.pr文件的目录。我在Windows上使用MinGW下的pkg-config。我发现这可以通过使用export PKG_CONFIG_PATH=[path]更改PKG_CONFIG_PATH环境变量来完成。 文件我想要pkg-config查找没有安装在MinGW目录中,但在“正常”Windows文件系统(C:\ Program Files(x86)\ Gtk + \ lib \ pkgconfig)中的某处。在MinGW中更改pkg-config的PKG_CONFIG_PATH

现在我的问题:如果我运行export PKG_CONFIG_PATH="/c/Program Files (x86)/Gtk+/lib/pkg-config/,然后运行pkg-config --cflags gtk+-win32-2.0我得到以下输出。

$ pkg-config --cflags gtk+-win32-2.0 --debug 
Option --debug seen 
Error printing enabled by default due to use of --version, --libs, --cflags, --libs-only-l, --libs-only-L, --libs-only-other, --cflags-only-I, --cflag 
s-only-other or --list. Value of --silence-errors: 0 
Error printing enabled 
Adding virtual 'pkg-config' package to list of known packages 
Cannot open directory 'c' in package search path: No such file or directory 
Cannot open directory '/Program Files (x86)/Gtk+/lib/pkgconfig/' in package search path: No such file or directory 
Scanning directory '/usr/lib/pkgconfig' 
Ignoring file '.' in search directory; not a .pc file 
Ignoring file '..' in search directory; not a .pc file 

因此,如何我必须指定.pr文件的路径,以便pkg配置可以找到它?如果我将.pr文件安装在MinGW目录中,这不是问题,它们在不更改环境变量的情况下找到。

回答

1

不,您应该在您的main.o Makefile目标中使用$(GTK_COMPILE)而不是$(GTK_LINK)。 $(GTK_COMPILE)调用pkg-config --cflags,它将返回需要编译的CFLAGS(头文件的位置)。您需要链接的LIBS,而不是编译

+0

感谢您的回复。愚蠢的错误。但是,在纠正之后,我仍然会得到同样的错误。如果我输入'pkg-config --cflags gtk + -2.0',所有搜索头文件的目录都在'/ usr/include /'中。我想将其更改为自定义目录。你能告诉我该怎么做吗? – simon 2012-03-22 14:58:45

+1

这不是最干净的方法,但也许你可以手动编辑.pc文件,使路径指向正确的地方? – 2012-03-22 15:02:43

+0

问题是我不确定哪个'.pc'文件实际使用。我尝试修改'C:\ Program Files(x86)\ Gtk + \ lib \ pkgconfig'文件夹中的文件夹,但无效。然后我用'--debug'标志检查了'pkg-config'输出,并且有人说它无法打开'PKG_CONFIG_PATH'变量中指定的目录。如果我输入'echo $ PKG_CONFIG_PATH',MinGW会发出'/ c/Program Files(x86)/ Gtk +/lib/pkgconfig /'。我可以“cd”到该目录,但由于某种原因'pkg-config'无法打开它。 – simon 2012-03-22 15:20:48