pkg-config for mingw 安裝及配置--schroedinger庫在mingw+msys上的編譯過程
本文僅供參考,如果有朋友比較著急,不想聽在下啰嗦,請直接進入第三節
一. 背景
在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.
Linux下編譯FFmpeg之下載源文件並編譯 http://www.linuxidc.com/Linux/2012-02/54565.htm
Linux 編譯升級 FFmpeg 步驟 http://www.linuxidc.com/Linux/2013-08/88190.htm
CentOS 5.6 上安裝 FFMPEG http://www.linuxidc.com/Linux/2011-09/42793.htm
在Ubuntu下安裝FFmpeg http://www.linuxidc.com/Linux/2012-12/75408.htm
Linux下開發Windows平台運行的程序 - MinGW http://www.linuxidc.com/Linux/2013-06/85217.htm