Windows7+VS2017 CE环境下Boost多精度库依赖GMP安装问题求助
解决VS2017下Boost多精度依赖GMP库的安装问题
我之前在VS2017 Community Edition环境里用Boost 1.66多精度库时,也碰到过和你一模一样的GMP安装文档缺失的问题,给你几个亲测有效的解决方向:
确认GMP包完整性:有时候从官网下载的压缩包可能因为网络波动损坏,导致解压后文档或编译文件缺失。建议重新下载对应Windows平台的GMP包,优先选择带校验和的版本,下载后校验文件完整性。
手动编译GMP(适配VS2017):如果不想找预编译包,可以用MSYS2环境来编译,步骤很清晰:
- 先安装MSYS2,打开MSYS2的终端窗口
- 进入GMP解压后的根目录,执行配置命令:
(./configure --prefix=C:\你的GMP安装路径 --enable-cxx --host=x86_64-w64-mingw32--enable-cxx是必须的,因为Boost多精度需要GMP的C++接口;--host参数适配Windows 64位环境,32位的话换成i686-w64-mingw32) - 执行
make完成编译,再执行make install把文件安装到指定路径 - 打开VS2017的项目属性,在VC++目录里添加:
- 包含目录:
C:\你的GMP安装路径\include - 库目录:
C:\你的GMP安装路径\lib
- 包含目录:
- 在链接器->输入里添加依赖库:
libgmp.lib和libgmpxx.lib
使用预编译GMP二进制包:这是最省心的方法,找适配VS2017的预编译版本,解压后直接按照上面的步骤配置VS的包含和库路径即可,不用自己折腾编译。
备选方案:切换Boost多精度后端:如果实在搞不定GMP,Boost多精度还支持其他后端,比如纯C++实现的
cpp_int,或者mpfr(如果能顺利安装mpfr的话),你可以修改代码里的类型定义,比如把boost::multiprecision::gmp_int换成boost::multiprecision::cpp_int,就能绕开GMP依赖。
内容的提问来源于stack exchange,提问作者Francis Cugler
相关产品推荐
相关产品推荐

