使用MinGW构建提升错误

时间:2018-04-02 19:17:00

标签: c++ boost mingw mingw-w64

我尝试使用CodeBLocks(gccc v5.1)附带的MinGW&#gCC版本构建boost库,并且我在PATH中有bin文件夹。我跑的时候

boostrap.bat mingw

boostrap.bat gcc

我得到了

execnt.c: In function 'try_wait_callback':
execnt.c:833:5: warning: implicit declaration of function 'UnregisterWait' [-Wimplicit-function-declaration]
 UnregisterWait( slot->wait_handle );

阅读一个小小的人告诉我,我的gcc版本没有工作来构建提升,所以我下载了最后一个MinGW-w64并将其bin文件夹内容复制到MinGW的bin文件夹中试图&# 34;欺骗"

如果我这样做的话     gcc -v

我可以看到我有7.3版本

现在它抛出了这个错误:

gcc: error: CreateProcess: No such file or directory

2 个答案:

答案 0 :(得分:0)

你应该使用MinGW-w64,而没有“将bin文件夹内容复制到MinGW中”的步骤!

您希望完全避免使用预分叉MinGW。再次下载并安装MinGW-w64,如果需要,还可以add it to Code::Blocks

请注意,有些网站提供MinGW-w64和Boost捆绑包。

答案 1 :(得分:0)

我对Code :: Block提供的MinGW遇到了同样的问题。因此,我必须在建议中添加重要的细节。 要构建Boost.build工具:

  1. 在新目录中安装minGW-w64后,您需要从PATH环境变量中删除旧的MinGW \ bin目录条目,并添加带有“ C:\ MinGW-w64 \ bin”条目的新条目。
  2. 由于某些原因,在用户或管理员下在命令行中启动命令无法按Boost文档中的说明运行,但是如果从MinGW-w64提供的快捷方式启动终端-Boost的命令可以完成构建。 (命令“ bootstrap.bat gcc”)
  3. 然后Boost文档推荐“ b2 install --prefix = PREFIX”,但我还必须在从MinGW-w64快捷方式启动的终端中添加“ b2 install --prefix = PREFIX toolset = gcc”之类的参数。
  4. 由于我想在我的项目中使用Code :: Blocks的MinGW32(出于其他兼容性原因),因此我又不得不跳过可用性的MinGW-w64(我刚刚将MinGW-w64的目录重命名,您可以从中删除条目PATH)并还原PATH变量中的MinGW32条目。我也将Boost构建工具“ bin” dir添加到PATH中。 所以我已经准备好使用Boost.Build工具(由MinGW-w64编译器构建)

要构建Boost库的二进制文件:

  1. 然后我以管理员身份启动终端,更改目录以增强根目录,然后使用最后一个命令,例如“ b2 --build-dir = build-directory toolset = gcc --build-type = complete stage”(其中build-目录供您选择)

最后我得到了结果:

...无法更新1334个目标...

...跳过了732个目标...

...更新了2873个目标...

在哪里可以找到我所需的Boost文件系统文件,例如

libboost_filesystem-mgw51-mt-x32-1_67.dll

libboost_filesystem-mgw51-mt-s-x32-1_67.a

libboost_filesystem-mgw51-mt-x32-1_67.a

我尚未测试它们,但这可以帮助其他人构建Boost。