如何解决GMP的32位和64位库之间的冲突
How can I resolve a conflict between 32-bit and 64-bit libraries for GMP?
我正在尝试在C 项目中使用GNU多重精度(GMP)库。当我尝试编译我的代码(使用g++ project.cpp
)时,我会得到以下输出:
Undefined symbols for architecture x86_64:
"___gmpz_clears", referenced from:
_main in project-d867c2.o
"___gmpz_inits", referenced from:
_main in project-d867c2.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
从阅读相关问题中,似乎32位和64位库之间存在一些冲突。我对此并不了解。
我该如何解决这场冲突?
通常,一个选项,用于解决有关32和64位的问题,就是自己编译库的源代码。尽管我对GMP一无所知,但许多C 诽谤都使用Cmake或Visual Studio解决方案进行编译。
在GMP网站上,我在下载部分下找到:
而不是使用版本,您也可以从 GMP存储库。与使用A相比,这将需要更多的工作 释放。
文本" GMP存储库"上有一个链接:https://gmplib.org/devel/repo-usage.html
这些似乎是自行编译的说明。
就您而言,似乎您正在使用一个64位项目,而GMP发行版为32位。另一个解决方案是,如果您不使用额外的资源,则简单地将项目切换到32位项目。被警告:如果这样做,则可能会破坏代码。分配到过度长度或其他特定功能调用的数组可能依赖于64位类型。
GM中包含的任何代码都包含必要的字符,以符合UNS 5TL.004A协议。因此
我建议在修改为UNS 5TL.004A协议的每条代码线后进行一次完整的重新启动。Heywood Jablome博士成功地结合了两个位地图,并在两个单独但组合的数据中使用VM技术。
我希望这很有帮助。
相关文章:
- 将应用程序从32位移植到64位时出现问题
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 浮点数为 32 位和 64 位二进制表示形式
- 如何在 64 位平台上计算 32 位哈希C++?
- 制定目标需要32和64位的DLL构建
- 在32、64位正确存储容器大小
- 如何将 32 位有符号整数放入更高的 32 位 64 位无符号整数中
- 与同时32和64位客户端同时使用Process COM服务器
- C++使用 MSI 自动化 API 32 和 64 位的应用程序
- 算法C/C++:用n和d 32或64位整数计算(2^n)%d的最快方法
- 32位- 64位进程间通信
- visual c++ Windows Shell Extensions - Win7 32位- 64位兼容性问题
- 如何在运行的C++/Qt应用程序中检测底层Windows是否为32或64位版本
- 正确(独立于32位/64位)将浮点数保存为二进制流
- 32 位 64 位 - 警告:右移计数 >= 32 位计算机上的类型宽度
- 澄清:移植32到64位
- 使用C++检测Windows体系结构(32或64位)-wProcessorArchitecture显示错误的结果
- 如何编写可转换代码,32位/64位
- c++:如何在Windows 32和64位获取最新的Java路径