我是一名学者,我需要开发一些数值算法,这些算法需要 MPIR 包中的函数http://mpir.org/downloads.html。我下载了 3.0.0 版本,并试图弄清楚如何在 Windows 7 专业版中将其与 Visual Studio 2017 一起使用。有没有办法将 mpir 包与 Visual Studio C/C++ 一起使用?本文档中的第 2.4 和 2.5 节http://mpir.org/mpir-3.0.0.pdf看似相关但帮助不大。
答案1
有没有办法将 mpir 包与 Visual Studio 2017 C/C++ 一起使用?
是的;当然可以。你可以像使用其他 C++ 接口一样使用它。
所有 MPIR C 语言类型和函数都可以在 C++ 程序中使用,因为 mpir.h 具有 extern “C” 限定符,但类接口提供了可能更方便的重载函数和运算符。由于此接口的实现,需要一个相当新的 C++ 编译器,该编译器支持命名空间、模板和成员模板的部分特化。对于 GCC,这意味着版本 2.91 或更高版本。
至于构建它,您需要在系统上安装所需的 MSVC++,但 MPIR 3.0.0 特别支持从 Visual Studio 2017 构建它。这意味着源代码作为必需的解决方案文件。
答案2
如果你已经vcpkg
安装它非常简单:
m .\vcpkg install mpir mpir:x64-windows
您可以进行调试、发布,x32
并且x64
非常简单。如果您还没有vcpkg
安装,那么这里有一个简单的教程,请参阅以下内容指示:
我的构建看起来如下
Computing installation plan...
The following packages will be built and installed:
mpir[core]:x64-windows
mpir[core]:x86-windows
Starting package 1/2: mpir:x64-windows
Building package mpir[core]:x64-windows...
-- Downloading https://github.com/wbhart/mpir/archive/mpir-3.0.0.tar.gz...
-- Extracting source C:/DEV/vcpkg/downloads/wbhart-mpir-mpir-3.0.0.tar.gz
-- Applying patch enable-runtimelibrary-toggle.patch
-- Using source at C:/DEV/vcpkg/buildtrees/mpir/src/mpir-3.0.0-c9f63a8302
-- Building C:/DEV/vcpkg/buildtrees/mpir/x64-windows/build.vc14/dll_mpir_gc/dll_mpir_gc.vcxproj for Release
-- Building C:/DEV/vcpkg/buildtrees/mpir/x64-windows/build.vc14/dll_mpir_gc/dll_mpir_gc.vcxproj for Debug
-- Performing post-build validation
-- Performing post-build validation done
Building package mpir[core]:x64-windows... done
Installing package mpir[core]:x64-windows...
Installing package mpir[core]:x64-windows... done
Elapsed time for package mpir:x64-windows: 2.77 min
Starting package 2/2: mpir:x86-windows
Building package mpir[core]:x86-windows...
-- Using cached C:/DEV/vcpkg/downloads/wbhart-mpir-mpir-3.0.0.tar.gz
-- Using source at C:/DEV/vcpkg/buildtrees/mpir/src/mpir-3.0.0-c9f63a8302
-- Building C:/DEV/vcpkg/buildtrees/mpir/x86-windows/build.vc14/dll_mpir_gc/dll_mpir_gc.vcxproj for Release
-- Building C:/DEV/vcpkg/buildtrees/mpir/x86-windows/build.vc14/dll_mpir_gc/dll_mpir_gc.vcxproj for Debug
-- Performing post-build validation
-- Performing post-build validation done
Building package mpir[core]:x86-windows... done
Installing package mpir[core]:x86-windows...
Installing package mpir[core]:x86-windows... done
Elapsed time for package mpir:x86-windows: 2.016 min
Total elapsed time: 4.786 min
答案3
手册的第 18 页说打开解压后的解决方案mpir/build.vc15/mpir.sln
并编译您想要使用的版本。有各种优化的版本,但我会从通用的开始
dll_mpir_gc
。
这将创建库。找到包含生成文件的文件夹.lib
,然后按照说明将其添加到项目中
.Lib 文件作为链接器输入。