在64位Windows 7(msys2/mingw64)上构建GMP 6.1.0:由于mp_limb_t不是64位,配置
Building GMP 6.1.0 on 64 bit Windows 7 (msys2/mingw64): configure fails due to mp_limb_t is not 64 bits
我试图在我的Windows7 64位计算机上构建GMP,所以我运行config.guess
并获得k10-pc-msys
。(我使用msys2和mingw64)
然后我运行
./configure --prefix=/c/gmp-6.1.0 --build=k10-pc-msys --enable-cxx
但是这个错误退出
checking size of mp_limb_t... 4 configure: error: Oops, mp_limb_t is 32 bits, but the assembler code in this configuration expects 64 bits.
因此,我再次使用额外的ABI=64
运行配置(考虑强制mp_limb_t
为64位),但最终出现了相同的错误。在此之后,我尝试添加CC="g++"
(认为--enable-cxx
需要g++
),但再次出现此错误。
我在谷歌上搜索了很多关于这一点的内容,发现GitHub上向juliaLang报告的一个问题看起来与我的问题很接近,但这个解决方案似乎对我不起作用,因为我没有使用Julia。
有人知道这个错误并找到了修复它的方法吗?
注意:我看到msys2已经安装,我可以使用它。但我的程序的运行时间仅从msys2安装的GMP构建NTL增加了约70%。我想这是因为它不是为我的电脑构建的,所以它根本没有优化。
编辑:即使没有任何设置(只有./configure --prefix=/c/gmp-6.1.0
)也会因同样的错误退出。
背景:我想使用NTL的线程安全构建。但为了建立NTL线程安全,我必须使用GMP。
这可以通过将--host=x86_64-w64-mingw32
添加到configure命令中来解决。通常建议构建使用Autotools或某种形式的Windows 64位配置脚本的软件。
你可以在MinGW-w64维基上阅读这个页面来了解更多关于这些事情的信息。
相关文章:
- 将应用程序从32位移植到64位时出现问题
- 64位机器上的C++内存对齐
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 在 64 位边界上对齐C++结构数组?
- 如何为字符串生成唯一但一致的 N 位哈希(小于 64 位)?
- 在 64 位的 c++ 中运行 mstest 测试
- 在两个线程上读/写 64 位,无互斥/锁定/原子
- 浮点数为 32 位和 64 位二进制表示形式
- 是否有 64 位等效于 GetLastInputInfo / LASTINPUTINFO?
- 所有可能的链接生成器与64位密钥
- WinAPI C++如何从 64 位应用程序加载资源
- 在 c++ 中输出 64 位整数
- 使用192/256位整数求和无符号64位整数向量的点积的最快方法
- 如何在 64 位平台上计算 32 位哈希C++?
- 使用 SysNative 在 Visual Studio 中创建 64 位应用程序
- 在 64 位整数内旋转(90°)位矩阵(最多 8x8 位)
- 64 位进程中的 AnyCPU C# DLL 无法引用 64 位C++ DLL(给出错误:无法加载文件或程序集)
- 将代码从 32 位迁移到 64 位时出现问题 Visual Studio 2010