Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为C+安装MPFR和GMP+;关于visualstudio_C++_Visual Studio_Installation_Gmp_Mpfr - Fatal编程技术网

C++ 如何为C+安装MPFR和GMP+;关于visualstudio

C++ 如何为C+安装MPFR和GMP+;关于visualstudio,c++,visual-studio,installation,gmp,mpfr,C++,Visual Studio,Installation,Gmp,Mpfr,据我所知,我应该首先安装GMP。我在这里找到的唯一教程是,当我达到第3步:“打开gmp.dsw(用于VC++.Net的gmp.vcproj)来构建gmp”时,我会遇到很多构建错误。您可以在此处下载:。有许多错误,如“致命错误C1083:无法打开包含文件:'fib_table.h':没有这样的文件或目录” 还有其他教程吗?我该怎么办 我在Windows 7上使用Visual Studio 2010。我遇到了类似的问题,我刚刚通过下载预编译的MPIR和MPFR库而不是GMP解决了这个问题,GMP需要

据我所知,我应该首先安装GMP。我在这里找到的唯一教程是,当我达到第3步:“打开gmp.dsw(用于VC++.Net的gmp.vcproj)来构建gmp”时,我会遇到很多构建错误。您可以在此处下载:。有许多错误,如“致命错误C1083:无法打开包含文件:'fib_table.h':没有这样的文件或目录”

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


我在Windows 7上使用Visual Studio 2010。

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

以下是我的解决方案的链接:

希望这有帮助

现在可以在这里找到@casevh的完美解决方案:

如何使用MPFR设置Visual Studio 2015项目 本指南将帮助您使用一些预构建的二进制文件,使用MPFR和MPIR(GMP的Windows端口)启动并运行VS项目。(这里有一个VS项目的链接和我提到的下载的二进制文件:)

获取预编译的二进制文件
  • 从以下位置获取预编译文件:

    • mpfr_mpir_x86_x64_msvc2010(使用msvc2010预编译mpfr mpir

      由于它是用MSVC 2010编译的,所以需要微软Visual C++ 2010×可再分布。如果我们尝试在调试模式下运行程序,我们将无法实现。我们将得到这个错误:“<强>程序不能启动,因为MVCP100.DLL是从您的计算机

      • 注意:VisualStudio仍然允许在发行版配置中进行调试,因此当您尝试启动并运行时,调试在这个阶段不是一个大问题
    • mpfrc++-3.6.2(Holoborodko编写的c++包装器)

      注意:这些二进制文件已经有几年的历史了,但它们已经过测试和测试 “相对无bug”

Visual Studio项目设置:
  • 将配置更改为“Release,x86” 因为我们错过了调试,所以现在就必须开始这样做 2010年可再发行版本中的DLL(应作为 (VS安装)

  • 在$(SolutionDir)中创建“libs”和“include”文件夹(顶级目录,其中 溶液被保留
  • 将正确的文件复制到以下文件夹中:
    • mpfr\u mpir\u x86\u x64\u msvc2010
      • 从mpfr和mpir的“Win32>Release”文件夹
      • 将*.dll、*.exp、*.lib和*.pdb复制到$(SolutionDir)/lib目录
      • $(SolutionDir)/include目录的所有头文件
    • mpfrc++-3.6.2
      • 将mpreal.h添加到您的项目中(或使用$(SolutionDir)/包括,如果您愿意的话)
      • 头文件是C++包装器
      • 所需的全部内容
  • 告诉VS在哪里查找新创建的“include”和“lib”目录 配置属性>VC++目录

    • 包含目录:将路径添加到包含目录
    • 库目录:将路径添加到库目录
  • 链接库的*.lib文件 配置属性>链接器>输入>其他依赖项

    • 将以下内容添加到此列表中:mpfr.lib;mpir.lib
  • 使用编译器选项,更改运行库: 配置属性>C/C++>代码生成>运行时库

    • 选择“多线程DLL(/MD)”
  • 设置用于生成的编译器参数: 配置属性>调试>命令参数

    • 附加:“-lmpfr-lgmp”
  • 强制将DLL复制到输出目录 配置属性>生成事件>生成后事件

    • 命令行:“XCOPY”$(SolutionDir)lib*.dll”“$(TargetDir)”/D/K/Y
    • 描述:“将DLL复制到目标目录”
    • 内置使用:是
  • 告诉VS在清理输出文件夹时清理DLL:

    配置属性->常规->清除时要删除的扩展

    • 添加:'*.dll'
  • 要测试项目,请从“example/example.cpp”中复制main() mpfrc++-3.6.2文件夹

    • 确保在stdafx.h include之后添加一个include您的mpreal.h文件
  • 有帮助的文章:

    使用软件包管理系统应该可以解决您的问题。
    我在windows下使用GNU libs等的大部分问题都是通过这种方式解决的。

    要在windows上构建GMP,你需要mingw,然后按照gmplib.org上的文档进行操作。你可能会发现安装MPIR fork更容易,它可以用visual studio编译。我有MPIR,但它不能很好地处理大的无理数(例如,没有日志).mingw会让我在没有其他程序的情况下照常运行visual studio吗?MPIR是GMP的一个分支/克隆,您仍然需要在上面安装MPFR。