[英]mingw-w64 cannot link to boost
我已經安裝了g++-mingw-w64-i686
來為Linux上的Windows編譯一個c++11
應用程序:
sudo apt-get install g++-mingw-w64-i686
sudo apt-get install libc6-dev-i386
我想知道為什么它不能鏈接到促進
main7.cpp
#include <iostream>
int main()
{
std::cout<<"Hello world!\n";
return 0;
}
編譯:
$ i686-w64-mingw32-g++ main7.cpp -Wfatal-errors -o main -std=c++11 -I'/usr/include/c++/4.9' -L'/usr/lib' -L'/usr/i686-w64-mingw32/lib' -lboost_system -lboost_thread -lboost_serialization -pthread
結果:
/usr/bin/i686-w64-mingw32-ld: cannot find -lboost_system
/usr/bin/i686-w64-mingw32-ld: cannot find -lboost_thread
/usr/bin/i686-w64-mingw32-ld: cannot find -lboost_serialization
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
當gcc
工作時:
g++ main7.cpp -Wfatal-errors -o main -std=c++11 -I'/usr/include/c++/4.9' -L'/usr/lib' -lboost_system -lboost_thread -lboost_serialization -pthread
$ g++ --version
g ++(Ubuntu 4.9.3-8ubuntu2〜14.04)4.9.3
您需要從源代碼交叉編譯要鏈接到的Boost庫。 Ubtuntu不打包Boost版本的Windows版本。 Boost.org在Sourceforge上分發了預構建的Windows二進制文件,但是它們僅針對MSVC ++構建,因此與mingw-w64二進制不兼容。
要交叉編譯boost庫,建議您咨詢:
特別:
和:
和:
我自己還沒有這樣做,所以無法談談您可能遇到的任何障礙。
其他一些Linux發行版打包mingw boost二進制文件,例如
如果出於某種原因無法在類似Unix的環境之一(cygwin,MYSYS2)中在Windows上構建程序,或者交叉編譯增強證明太難了,那么您可以考慮在Fedora / ArchLinux VM中交叉編譯程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.