如何在visual studio上安装MPFR和GMP for C ++

时间:2013-10-30 16:26:39

标签: c++ visual-studio install gmp mpfr

据我了解,我应该首先安装GMP。我为此找到的唯一教程是http://cs.nyu.edu/exact/core/gmp/,当我到达第3步时:“打开gmp.dsw(用于VC ++。net的gmp.vcproj)来构建GMP”我得到了许多构建错误。您可以在此处下载:http://www.f2h.co.il/msbz68nzzip。有很多错误,比如“致命错误C1083:无法打开包含文件:'fib_table.h':没有这样的文件或目录”。

还有其他教程吗?我该怎么办?

我在Windows 7上使用Visual Studio 2010。

3 个答案:

答案 0 :(得分:3)

如何使用MPFR

设置Visual Studio 2015项目

本指南将使用一些预建的二进制文件,使用MPFR和MPIR(Windows的GMP端口)帮助您启动和运行VS项目。 (这是VS项目的链接以及我提到的下载二进制文件:https://dl.dropboxusercontent.com/u/90643534/MPFR-VSProj.zip

获取预编译二进制文件

  • http://www.holoborodko.com/pavel/mpfr/#projects

    获取预编译的文件
    • mpfr_mpir_x86_x64_msvc2010(预编译的mpfr mpir与MSVC 2010

        

      由于它是使用MSVC 2010编译的,因此需要Microsoft Visual C ++ 2010 * Redistributable。如果我们尝试在调试模式下运行程序,我们就无法做到。我们会收到此错误:" 程序无法启动,因为您的计算机错过了MSVCP100.dll "。本质上,MSVCP100.dll是Visual Studio 2010安装的一部分,但不包含在Redistributable中,Redistributable只包含发布版本的构建所需的dll

           
          
      • 注意:visual studio仍允许在Release版本中进行调试,因此在您刚刚尝试启动并运行时,调试不是一个大问题
      •   
    • mpfrc ++ - 3.6.2(Holoborodko的c ++包装)

        

      注意:这些二进制文件已有几年的历史,但经过测试和测试   "相对没有错误"

Visual Studio项目设置:

  1. 将配置更改为" Release,x86"
      

    这是必要的,因为我们缺少调试       2010 Redistributable中的dll(应该已经安装为       VS安装)

  2. 创建一个' libs'和'包括' $(SolutionDir)中的文件夹(顶级目录在哪里 保持解决方案。
  3. 将正确的文件复制到这些文件夹中:
    • mpfr_mpir_x86_x64_msvc2010
      • 来自' Win32>发行' mpfr和mpir的文件夹
      • 将* .dll,* .exp,* .lib和* .pdb复制到$(SolutionDir)/ lib目录
      • 所有头文件到$(SolutionDir)/ include目录
    • mpfrc ++ - 3.6.2
      • 将mpreal.h添加到您的项目中(或者如果您愿意,可以在$(SolutionDir)/ include中添加)
      • 标题是c ++包装器所需的全部内容
  4. 告诉VS在哪里寻找新创建的' include'和' lib'目录
      

    配置属性> VC ++目录

         
        
    • 包含目录:添加包含目录的路径
    •   
    • 库目录:添加lib目录的路径
    •   
  5. 链接lib的* .lib文件
      

    配置属性>链接器>输入>其他依赖性

         
        
    • 将以下内容添加到此列表中:mpfr.lib; mpir.lib;
    •   
  6. 使用编译器选项,更改运行时库:
      

    配置属性> C / C ++>代码生成>运行时库

         
        
    • 选择"多线程DLL(/ MD)"
    •   
  7. 设置构建的编译器参数:
      

    配置属性>调试>命令参数

         
        
    • 追加:" -lmpfr -lgmp"
    •   
  8. 强制将DLL复制到输出目录
      

    配置属性>构建活动>建设后活动

         
        
    • 命令行:' XCOPY" $(SolutionDir)lib * .dll" " $(TARGETDIR)" / D / K / Y'
    •   
    • 说明:'将DLL复制到目标目录'
    •   
    • 在构建中使用:是
    •   
  9. 告诉VS在清理输出文件夹时清理DLL:

      

    配置属性 - >一般 - >清除时删除的扩展名

         
        
    • 添加:' *。dll'
    •   
  10. 要测试您的项目,请从"示例/ example.cpp"复制main();从 mpfrc ++ - 3.6.2文件夹

    • 确保在stdafx.h include
    • 之后添加包含mpreal.h文件
  11. 有用的SO文章:

答案 1 :(得分:0)

我遇到了类似的问题,刚刚通过下载预编译的MPIR和MPFR库而不是GMP来解决它,而GMP需要在Windows上使用mingw或类似功能。

以下是我的解决方案的链接: How to install MPFR with Visual studio 2008 /2010

希望这个帮助

现在可以在这里找到@casevh的完美解决方案: Build mpir/mpfr/mpc via VC++

答案 2 :(得分:0)

使用VCPKG软件包管理系统应该可以解决您的痛苦。 我在Windows下对GNU库等的大多数使用都是通过这种方式解决的。