繁体   English   中英

使用MinGW增强构建时出错

[英]Error building boost with MinGW

我试图使用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文件夹中,试图“作弊”

如果我做gcc -v

我可以看到我有7.3版

现在,它引发了这个错误:

gcc: error: CreateProcess: No such file or directory

您应该使用MinGW-w64,而无需执行“将其bin文件夹内容复制到MinGW中”的步骤!

您要避免完全使用前叉MinGW。 再次下载并安装MinGW-w64,然后根据需要将其添加到Code :: Blocks中

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

我对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-directory是你的选择)

最后我得到了结果:

...未能更新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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM