C++ 使用MinGW 64-(Cygwin)安装boost

C++ 使用MinGW 64-(Cygwin)安装boost,c++,cygwin,mingw-w64,C++,Cygwin,Mingw W64,我正在尝试安装boost库(1.53),以便在Windows下的64位应用程序中使用它。然而,我在尝试使用与MinGW32和更旧的boost版本相同的方式进行设置时遇到了一系列错误 现在,我在第一步一直失败-执行./bootstrap.sh。返回以下错误: mkdir bootstrap gcc -o bootstrap/jam0 command.c compile.c constants.c debug.c function.c glob.c hash.c hdrmacro.c headers

我正在尝试安装boost库(1.53),以便在Windows下的64位应用程序中使用它。然而,我在尝试使用与MinGW32和更旧的boost版本相同的方式进行设置时遇到了一系列错误

现在,我在第一步一直失败-执行./bootstrap.sh。返回以下错误:

mkdir bootstrap
gcc -o bootstrap/jam0 command.c compile.c constants.c debug.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c
function.c: In function ÔÇścheck_alignmentÔÇÖ:
function.c:222:5: warning: cast from pointer to integer of different size
builtins.c:33:23: fatal error: sys/wait.h: No such file or directory
compilation terminated.
execunix.c:17:26: fatal error: sys/resource.h: No such file or directory
compilation terminated.
fileunix.c:98:17: fatal error: ar.h: No such file or directory
compilation terminated. 
当我运行bootstrap.bat时,Boost.Build会自动生成,但稍后会出现奇怪的错误。起初,我试图将x86_64-w64-mingw32-gcc etc可执行文件符号链接到gcc,但最终出现了许多“拒绝访问”错误,所以我只是将x86_64-w64-mingw32-XX文件复制粘贴到简单的XX.exe文件中。现在我可以开始正确的构建,但最终会:

...failed gcc.archive bin.v2\libs\thread\build\gcc-mingw-4.5.3\debug\address-model-64\link-static\threading-multi\libboost_thread-mgw45-mt-d-1_53.a...
gcc.archive bin.v2\libs\thread\build\gcc-mingw-4.5.3\release\address-model-64\link-static\threading-multi\libboost_thread-mgw45-mt-1_53.a
System cannot find the path specified.
System cannot find the path specified.
我发现,它试图使用Win-like路径斜杠(/vs\),可能因此失败

我不想使用MSVC,因为我试图让我的代码尽可能的可移植,而且64位的代码也很重要


提前感谢。

这看起来像是Cygwin安装中丢失的文件。再次尝试运行安装程序,并确保为gcc编译器(Cygwin,而不是MinGW64)安装了所有内容。 我成功地运行了bootstrap.sh,bjam使用默认的Cygwin gcc编译器编译得很好。在那之后,我遇到了一些减速带,但是使用MinGW64一切都很好。我在tools\build\v2\user-config.jam中添加了编译器可执行文件,如下所示:

using gcc : 4.5.3 : x86_64-w64-mingw32-gcc.exe ;
我最后使用了以下命令行:

./b2 --toolset=gcc target-os=windows --build-dir=/cygdrive/c/whatever/boost_build variant=debug,release link=static runtime-link=static architecture=x86 address-model=64 threadapi=win32 --layout=tagged --without-mpi --stagedir=lib/win64gcc -j4 stage
。。。然后我用
link=shared runtime link=shared
尝试了同样的方法,但是我有很多编译错误我还没有弄清楚

一些可能对您有所帮助的链接:

编辑:
我最终使用了MinGW64 TDM,它比Cygwin MinGW64简单得多,因为它不是交叉编译器。只需安装MinGW64 TDM,添加MSYS,即可!Boost编译没有任何问题。

虽然我知道如何解决您的问题,但我想首先问一下,您为什么要坚持使用Cygwin?这是废话。你知道吗?@Haroogan嗯。。。我首先使用的是MinGW-w64。那么我可以问一下Cygwin在标题中做了什么吗?@Haroogan嗯,可能是因为我使用的是x86_64-w64-mingw32-g++包,这是默认的和推荐的使用方式?这是错误的假设。你是从哪里获得这些信息的?