mingw/msys中編譯boost及安裝pkg-config教程

來源:互聯網
上載者:User

mingw/msys中編譯boost

首先,當然是安裝mingw了。安裝非常方便,去網站上下載個mingw-get或者它的圖形介面版,然後安裝就可以了。不過,在安裝過程中,很容易出現下載失敗的情況,所以建議還是使用mingw-get這個命令列版本的比較好,失敗了馬上重新執行一邊就可以了。

首先必須安裝gcc和g++,使用mingw-get install gcc g++就可以了。這個命令怎麼這麼像debian的包管理器呢~

安裝好之後,再去下載msys的安裝包。有圖形介面,安裝起來比較方便的,在最後是否已經安裝了mingw的選項中選擇是,然後輸入mingw安裝的路徑即可。這個路徑,msys會在fstab中寫入,運行時掛載到/mingw目錄下。

開啟msys之後,就可以開始編譯boost了。首先,當然是先去下載原始碼包了,下載了之後解壓縮。試了好幾次,不能直接執行boost原始碼最外層的那個bootstrap.sh這個指令碼來產生bjam檔案。直接執行,會提示找不到sys/resources.h這幾個標頭檔,如果指定了toolset為mingw之後,bjam是可以編譯過的,但是再編譯後面的boost其他模組,就會提示缺少mingw.jam這個檔案。

所以,通過查看這幾個指令檔,可以去toolsbuildv2enginesrc目錄下,執行build.sh mingw就可以編譯出後面需要用到的bjam。稍微看下就可以知道,其實對於mingw,用的編譯工具還是gcc,只不過是編譯bjam的時候載入的原始碼不同,不會出現sys/resouces.h不存在這樣的錯誤。

編譯完成後,把bin.ntx85目錄中的bjam.exe拷貝到原始碼目錄的最外層,然後回到最外層執行:
bjam –prefix=/mingw –toolset=gcc variant=release link=static threading=multi runtime-link=static install

因為在windows中使用,為了方便分發,所有的庫都採用靜態串連的方式。將boost安裝到/mingw目錄中,也就是mingw安裝的地方,這樣後面要編譯其他東西的時候就能夠找到這裡庫了。剛開始會有提示,預設沒有使用mpi,系統中找不到python,這兩個目前不需要,暫時不管了。


mingw/msys中安裝pkg-config

在編譯vmime的時候,發現configure的時候老是提示gnutls庫找不到,這個明明已經是安裝了的。稍微看了下configure檔案之後,發現是因為pkg-config沒有安裝。

按照mingw的faq的提示,去這裡下載了glib和pkg-config的二進位包。解壓縮glib的包,將裡面的libglib.dll複製到/mingw/bin中,然後將pkg-config.exe也複製到/mingw/bin中。再次啟動並執行時候又提示pkg-config.exe缺少intl.dll,仔細看了下載頁面,這個dll是在gettext的二進位包裡面的,下載之。釋放裡面的intl.dll到/mingw/bin之後,pgk-config就能夠正常運行了,vmime也能夠正常編譯了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.