使用 MinGW W64 构建 Boost(不带 MASK)

2023-11-29

我尝试使用 MinGW64 编译器构建本机 64 位的 Boost 库,但遇到了一些失败。任何指示表示赞赏。谢谢。

我得到了以 64 位编译的 bjam.exe (b2.exe)(带有警告),并使用它来构建 Boost。构建 Boost.Context 时出现以下错误。 (我批量编写了可重复构建的命令)。我错过了什么吗?

  • 命令:b2.exe install --prefix=%~dp0\bld\Boost.Build
  • 错误:“ml64”未被识别为内部或外部命令、可操作程序或批处理文件。

我阅读了文档,它说:

Boost.Context 必须针对特定的编译器和目标 CPU 架构构建。 Boost.Context 包含汇编代码,因此需要 GNU AS(用于受支持的 POSIX 系统)和 MASM(用于 Windows 系统)。

那么,是否可以告诉 bjam 使用我的 MinGW 安装中包含的 as.exe? (由于我有多个MinGW,所以位置不是标准的C:\MinGW\bin)

项目配置.jam

import option ;
using gcc ; 
option.set keep-going : false ; 

Platform

  • Windows 7 x64
  • Boost 1.52.0(来源自sourceforge)
  • MinGW 4.7.2 (rubenvb x64)
  • 未安装 MSVC(我的计算机中未安装/未找到 ml64.exe)
  • Edit安装WDK时出现问题

构建 BJam 时的警告,我觉得可以忽略不计

function.c: In function 'check_alignment':
function.c:222:5: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

整批

SET OPATH=%PATH%
SET BOOST_VER=boost_1_52_0
SET "PATH_ZIP=C:\Program Files\7-zip"
SET "PATH_MINGW=C:\MinGW\rubenvb-4.7.2-64"
SET "PATH_SRC=%~dp0\%BOOST_VER%"
SET "PATH_BJAM=%PATH_SRC%\tools\build\v2\engine"

TITLE Extracting Packages ...
IF NOT EXIST "%PATH_SRC%.7z" GOTO :err_nozip
RD /S /Q "%PATH_SRC%"
"%PATH_ZIP%"\7z x "%PATH_SRC%.7z"

TITLE Building BJam ...
PUSHD "%PATH_BJAM%"
SET "PATH=%PATH_MINGW%\bin"
SET "BOOST_JAM_TOOLSET_ROOT=%PATH_MINGW%\"
CALL build.bat mingw --show-locate-target
SET PATH=%OPATH%
COPY "bin.ntx86_64\b2.exe" "%PATH_SRC%\" > nul
COPY "bin.ntx86_64\bjam.exe" "%PATH_SRC%\" > nul
POPD

TITLE Installing Boost Build...
PUSHD "%PATH_SRC%"
ECHO import option ; > project-config.jam
ECHO. >> project-config.jam
ECHO using gcc ; >> project-config.jam
ECHO. >> project-config.jam
ECHO option.set keep-going : false ; >> project-config.jam
ECHO. >> project-config.jam
b2.exe install --prefix=%~dp0\bld\Boost.Build
POPD

SET PATH=%OPATH%

这是使用 MinGW 构建 Boost >~1.51 时的一个已知问题。目前,使用 MinGW 构建 Boost 已被破坏,因为在为 Windows 构建 Boost::Context 时,Boost 依赖于 MASM(在您的情况下为 ml64),即使使用 MinGW 也是如此。

作为提示,您可以从 Microsoft 网站获取 MASM:http://www.microsoft.com/en-gb/download/details.aspx?id=12654对于 32 位版本,或者用于 64 位版本的 Windows 驱动程序工具包:http://msdn.microsoft.com/en-us/windows/hardware/hh852365.aspx

您可以在此处使用 Boost bug tracker 上提供的补丁:https://svn.boost.org/trac/boost/ticket/7262尽管让 Boost::Context 仅使用 MinGW 进行编译,从而重新启用 Boost 的交叉编译。您还可以阅读 Boost 的 Olli 关于该主题的回复以及他对此主题的回应。至少在一段时间内不要指望 Boost 能修复任何问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MinGW W64 构建 Boost(不带 MASK) 的相关文章

随机推荐

  • 单击产品标签时标签计数会自动更改

    我正在使用 Shopify 我在集合页面中 我获取所有带有标签计数的过滤器 例如 All Products Apple 4 Banana 2 Orange 1 Mango 8 现在 当我单击任何标签 例如我单击香蕉 时 它将显示香蕉产品 现
  • 无法将 io.ktor 导入到 Android Studio 中的 KMM 公共模块

    所以我是 Kotlin Multiplatform Mobile 和一般移动开发的新手 我正在尝试在这里遵循本教程关于 KMM 教程在我的项目中使用 Ktor 添加依赖后 如build gradle kts所示 下面 commonMain
  • 国际化不起作用或者我不知道如何使其起作用

    Settings py常量 TIME ZONE Europe Vilnius LANGUAGE CODE lt USE I18N True USE L10N True USE TZ True MIDDLEWARE CLASSES djang
  • 使用 C# 的 Magento SOAP API V2:需要 HTTP 身份验证的商店出现问题

    修改后的问题我修改了原来的问题 如下所示 以便我可以将问题的一部分标记为已回答 所以这里是 我构建了一个工具来从客户商店 magento 导入销售订单 以便集成到我们的旧订单处理系统中 我有五家商店可供进口 其中之一在其商店中设置了 HTT
  • 计算 git 存储库中的行数

    如何计算 git 存储库中所有文件中存在的总行数 git ls files给我一个 git 跟踪的文件列表 我正在寻找一个命令cat所有这些文件 就像是 git ls files cat all these files wc l xargs
  • 元素嵌套时覆盖 em 字体大小

    当您有嵌套元素时 如何覆盖 font size 属性 使用 重要的似乎没有任何效果 div font size 6em p font size 1em important span font size 1em div span span s
  • 分页循环Google脚本

    我完全是个新手 想出了以下 Google 脚本来发送 GET 请求 然后将响应解析到 Google Sheet 中 我只能在第一页上请求 50 个项目 并且我尝试寻找一种循环页面的方法 直到获得我请求的所有数据 我确信如果有人能指出我正确的
  • 为什么我在 ggtext 的轴标签中使用 png 徽标的代码不起作用

    我正在尝试学习 改进 R 中的可视化 这个精彩的帖子 对于第一部分 它似乎效果很好 但是轴文本被徽标替换的部分不起作用 显示的错误是 Error in png readPNG get file path native TRUE file i
  • 如何将带参数的 WordPress 短代码传递给模板

    我有带有子主题的模板 我编辑子模板 function php 目标是创建简短的代码 其中包含参数和模板文件的一部分 我的函数如下所示 function my shortcode atts array extract shortcode at
  • jQuery 类选择器不起作用,id 选择器仅适用于“body”

    我正在尝试使用 jquery 应用 CSS 值 但类选择器或 id 选择器由于某种原因不起作用 这是我的小提琴 如您所见 如果我使用 id kitten 则不会发生任何情况 HTML div div Script function var
  • 签名的小程序可以与它们所源自的不同主机连接吗?

    我需要一个小程序来打开套接字并与侦听的服务器进行通信 小程序下载到的本地主机 最终用户计算机 与我读到的有关小程序安全性的内容相反 似乎甚至签名的小程序 无法打开到下载它们的不同主机的套接字 在同一台机器上它工作得很好 我已经使用 self
  • angularjs 路由可以有可选的参数值吗?

    我可以设置带有可选参数的路线 相同的模板和控制器 但如果某些参数不存在 则应忽略它们 因此 与其编写以下两条规则 而只编写一条 module config routeProvider function routeProvider route
  • 在 SQL Server 视图中使用表值函数

    如果我尝试以下查询 我有一个表值函数可以正常工作 SELECT FROM dbo GetScheduleForEmployee AS schedule 但是 如果我尝试使用该查询创建视图 则会收到 参数太少 错误 表值函数和视图有限制吗 这
  • 如何通过使用delphi 7中的API获取Netstat信息

    我的任务是查找 abt n w 信息 或者 Windows 中 netstat 命令给出的信息 现在 我被告知使用一些 API 来提取该信息 任何可用于 delphi 7 执行此任务的 API 都会有所帮助 我遇到过这个 API 即 IP
  • 递归CTE概念混淆

    我试图理解在 SQL 代码中使用 CTE 的概念 我已经浏览了许多解释这个概念的在线帖子 但我无法理解它如何迭代以呈现分层数据 解释 R CTE 的广泛使用的示例之一是 Employee 和 ManagerID 示例 如下所示 USE Ad
  • 如何在IIS服务器上的conda基础环境中部署python Flask应用程序?

    我想在 IIS 服务器上部署 Flask REST API 应用程序来发布一些 ML API 我已经安装了 Anaconda 来在其基本环境中运行该应用程序 因为我有一些数据科学库需要导入 我按照此链接进行部署 它对于教程中给出的示例运行良
  • 在 Windows 上使用 fgets() 从 stdin 读取 UTF-8

    我正在尝试读取 UTF 8 字符串stdin using fgets 控制台输入模式已设置为CP UTF8前 我还在 PowerShell 中将控制台字体设置为 Lucida Console 最后 我通过打印德语来验证 UTF 8 输出是否
  • 该字段太小,无法接受您尝试添加的数据量。有人从 ADO.NET 收到此错误吗?

    从数据集更新 Excel 文件似乎工作正常 但是 如果我的文本长度超过 255 个字符 则会出现上述错误 还有其他人遇到过这样的错误吗 你如何解决它 我已经为此工作了几个小时 但一无所获 我尝试过弄乱连接字符串并更改注册表设置 但没有成功
  • 如何在 Angular js 中的更改时向复选框的父元素添加/删除类

    我有一个包含复选框项目的列表 在选择复选框时我想向父 li 添加一个类 我怎样才能做到这一点 我是 Angular 的新手 ul li li ul
  • 使用 MinGW W64 构建 Boost(不带 MASK)

    我尝试使用 MinGW64 编译器构建本机 64 位的 Boost 库 但遇到了一些失败 任何指示表示赞赏 谢谢 我得到了以 64 位编译的 bjam exe b2 exe 带有警告 并使用它来构建 Boost 构建 Boost Conte