pkg-config for mingw 安装及配置

http://blog.csdn.net/chaosllgao/archive/2009/03/12/3984462.aspx

如果有朋友比较着急,不想听在下啰嗦,请直接进入第三节

 

.   背景

 

msys + mingw 上编译 schroedinger 的过程中,总会冒出以下的这个错误

 

error: liboil-0.3 >= 0.3.13 is required

 

从字面上看,这是因为这个工程依赖于 liboil 0.3.13 这个库,而没有找到这个库所致,检查一下自己的系统, liboil-0.3.15 已经存在,并且对应的 .a .h 文件都在相应的 path 下。这下只能看一下 configure 文件,看看到底是什么原因,经过一番痛苦的摸索,原来 configure 脚本会通过一个叫 pkg-config 的工具来检测 liboil 相应的版本,而我没有这个工具。所以下面就开始了安装 pkg-config 的过程。

 

. 寻找 pkg-config 并安装

最先找到的是 http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz , 这是一个针对 cygwin 的安装包, download 下来并配合 cygwin1.dll 一用,发现还可以,把环境等设置好后,重新运行,还是出问题。这次是因为没有设置 2 pkg-config 自身的环境变量所致。

PKG_CONFIG 代表 pkg-config.exe 这个程序的全路径

PKG_CONFIG_PATH 代表 pkg_config.exe 在寻找已安装包的目录列表

 

我的设置如下 , 打开 %MSYS_HOME%\1.0\etc\profile 文件

 

if [ $MSYSTEM == MINGW32 ]; then

 

fi

 

后面加上下面的环境变量设置

 

if [ -z "$PKG_CONFIG" ]; then

  export PKG_CONFIG=/D/gnu/pkg-config-0.23-2/bin/pkg-config.exe

fi

 

if [ -z "$PKG_CONFIG_PATH" ]; then

  export PKG_CONFIG_PATH=/mingw/lib/pkgconfig:/usr/local/lib/pkgconfig

fi

 

关闭并重新启动 msys ,环境变量已经设置好,心想这下差不多了吧,结果还是打印出上面的错误,打开 config.log 发现下面的错误描述

 

configure:21047: $PKG_CONFIG --exists --print-errors "liboil-0.3 >= $OIL_VER"

Package liboil-0.3 was not found in the pkg-config search path.

Perhaps you should add the directory containing `liboil-0.3.pc'

to the PKG_CONFIG_PATH environment variable

No package 'liboil-0.3' found

 

msys 控制台上运行命令

$PKG_CONFIG --exists --print-errors "liboil-0.3 >= 0.3.13"

错误如上,

cd ~

回到用户主目录,重新运行, OK 。莫名奇妙。总之经过一番试验后,发现 cygwin 版本的无法切换盘符,我的 msys D 盘,而工程在 G 盘,细节不再详究。

 

重新找直接可以在 mingw 下运行的版本,最终在下面这个地址找到

http://www.gtk.org/download-windows.html

 

需要下载的文件:

 

pkg-config-0.23-2.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23-2.zip

 

glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

只需要用到其中的 libglib-2.0-0.dll 文件,其他的文件可以扔掉。

 

经过上面一番折腾后,重新编译,一切 OK

 

. 总结

 

1. 下载 pkg-config-0.23-2.zip glib_2.18.4-1_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip

 

glib_2.18.4-1_win32.zip 中的 libglib-2.0-0.dll pkg-config.exe 放在同一目录,或者放在 $path 目录下 .

 

2. 设置环境变量

export PKG_CONFIG=/D/gnu/pkg-config-0.23-2/bin/pkg-config.exe

export PKG_CONFIG_PATH=/mingw/lib/pkgconfig:/usr/local/lib/pkgconfig

 

Done.

猜你喜欢

转载自mysuperbaby.iteye.com/blog/906223