带有 msys 的 Windows 上的 GMP
Posted
技术标签:
【中文标题】带有 msys 的 Windows 上的 GMP【英文标题】:GMP on Windows with msys 【发布时间】:2014-11-27 15:39:37 【问题描述】:我正在尝试让 gmp 在 Windows 8.1 上与 Dev-cpp 一起工作。我已经设置了 msys 并尝试构建 gmp,但没有成功。首先,我遇到了 M4 错误,我设法修复了它,但现在我被困了几个小时,互联网并没有太大帮助。这些是我得到的警告和错误:
配置:警告:+--------------------------------- ------------- 配置:警告:|无法确定全局符号前缀。 配置:警告:| /c/Program Files (x86)/Dev-Cpp/MinGW64/bin/nm 输出不包含全局数据符号。 配置:警告:|将继续不带下划线。 配置:警告:|如果这是错误的,那么您将收到链接错误 配置:警告:|到___gmpn_add_n(注意三个下划线)。 配置:警告:|在这种情况下,使用覆盖进行全新构建, 配置:警告:| ./configure gmp_cv_asm_underscore=yes 配置:警告:+--------------------------------- ------------- 检查如何切换到只读数据部分... .section .rdata,"dr" 检查汇编程序 .type 指令... 检查汇编程序 .size 指令... 检查汇编器本地标签前缀...配置:警告:“/c/Program Files (x86)/Dev-Cpp/MinGW64/bin/nm”失败 配置:警告:无法确定本地标签,使用默认 L 大号 检查汇编器字节指令... .byte 检查如何定义 32 位字... ./configure: line 25284: /c/Program: No such file or directory ./configure: line 25284: /c/Program: No such file or directory 配置:错误:无法确定如何定义 32 位字 配置:警告:缓存变量 lt_cv_path_LD 包含换行符如果能提供任何帮助,我将不胜感激。
【问题讨论】:
【参考方案1】:让我们看看错误:
检查汇编器本地标签前缀...配置:警告:“/c/Program Files (x86)/Dev-Cpp/MinGW64/bin/nm”失败 配置:警告:无法确定本地标签,使用默认 L 大号 检查汇编器字节指令... .byte 检查如何定义 32 位字... ./configure: line 25284: /c/Program: No such file or directory ./configure: line 25284: /c/Program: No such file or directory特别是/c/Program: No such file or directory
。这似乎表明 configure 对将 Mingw 安装到包含空格的路径这一事实不满意。所以我的猜测是,最干净的方法是找到一种将编译器安装到不包含空格的路径的方法。
【讨论】:
终于成功了。我不敢相信我花了几个小时来研究这个问题,重要的是那个空间......非常感谢【参考方案2】:最后,我解决了同样的问题。就我而言,安装 C::B mingwin 是问题的根源,因为配置脚本会获取长路径名,如“C:\Program Files ...”并将它们拆分为生成的 makefile。对我有用的解决方案:为 c:\MinGW\msys\1.0\bin\sh.exe 创建一个构建 bash 文件,其内容类似于
export PATH=/c/MinGW/bin:/c/MinGW/msys/1.0/bin:$PATH
./configure
make
【讨论】:
以上是关于带有 msys 的 Windows 上的 GMP的主要内容,如果未能解决你的问题,请参考以下文章
带有 GTK 的 Windows 10 中的 Msys2 返回错误 pkg-config
如何在 Windows 7+ 和 MSYS2 上的 GTK3 上获取本机 Windows 装饰