使用mpfr时mpreal.h中的错误

时间:2017-06-13 11:10:22

标签: c++ visual-studio-2010 eigen mpfr

我正在尝试使用mpfr和eigen(MPRealSupport)进行一些计算。

当我尝试在VS2010中编译我的编程时(是的我知道它已经老了,但我没有任何选择)我得到以下错误(抱歉他们是德语。我不能改变语言VS):

1>C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(2607): error C2660: 'mpfr::urandom': Funktion akzeptiert keine 1 Argumente
1>C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(2630): error C2665: "mpfr::grandom": Durch keine der 2 Überladungen konnten alle Argumenttypen konvertiert werden.
1>          C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(474): kann 'const mpfr::mpreal mpfr::grandom(unsigned int)' sein
1>          bei Anpassung der Argumentliste '(gmp_randstate_t)'
1>  Zone.cpp
1>C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(2607): error C2660: 'mpfr::urandom': Funktion akzeptiert keine 1 Argumente
1>C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(2630): error C2665: "mpfr::grandom": Durch keine der 2 Überladungen konnten alle Argumenttypen konvertiert werden.
1>          C:\Program Files\CPP_Extra\Doku_eigen-eigen-07105f7124f9\unsupported\test\mpreal\mpreal.h(474): kann 'const mpfr::mpreal mpfr::grandom(unsigned int)' sein
1>          bei Anpassung der Argumentliste '(gmp_randstate_t)'

粗略的翻译是:

mpreal.h(2607):错误C2660:'mpfr :: urandom':函数dos不接受1参数

mpreal.h(2630):错误C2665:“mpfr :: grandom”:通过非2次覆盖可以转换所有参数类型

mpreal.h(474):可以是'const mpfr :: mpreal mpfr :: grandom(unsigned int)'          调整参数列表'(gmp_randstate_t)'

我完全不知道如何解决这些错误。

任何提示?

感谢....

修改

好的,这是一个产生上述错误的迷你示例......

头:

#pragma once

#include <Doku_eigen-eigen-07105f7124f9\unsupported\Eigen\MPRealSupport>
#include <mpfr.h>
#include <mpreal.h>
class test {
public:
    test();
};

CPP:

#include "test.h"

test::test(){
}

这些是我的包含路径:

  • $(QTDIR)\包括;
  • $(QTDIR)\包括\ qtmain;
  • $(QTDIR)\包括\ QtCore;
  • C:\ Program Files \ Itasca \ Flac3d500 \ pluginfiles \ interface;
  • C:\ Program Files \ CPP_Extra \ mpfr_mpir_x86_x64_msvc2010 \ mpfr; (mpfr.h)
  • C:\ Program Files \ CPP_Extra \ Doku_eigen-eigen-07105f7124f9 \ unsupported \ test \ mpreal; (MPRealSupport)
  • C:\ Program Files \ CPP_Extra; C:\ Program Files \ CPP_Extra \ mpfr_mpir_x86_x64_msvc2010 \ mpir \ dll \ x64 \ Release; (gmp.h)

修改2

好的,我通过获得最新的Eigen和mpfr c ++来获得错误。

但现在我收到了LINK2019错误......

Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_get_default_rounding_mode" in Funktion ""public: static enum mpfr_rnd_t __cdecl mpfr::mpreal::get_default_rnd(void)" (?get_default_rnd@mpreal@mpfr@@SA?AW4mpfr_rnd_t@@XZ)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_get_default_prec" in Funktion ""public: static long __cdecl mpfr::mpreal::get_default_prec(void)" (?get_default_prec@mpreal@mpfr@@SAJXZ)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_clear" in Funktion ""private: void __cdecl mpfr::mpreal::clear(struct __mpfr_struct *)" (?clear@mpreal@mpfr@@AEAAXPEAU__mpfr_struct@@@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_set_default_prec" in Funktion ""public: static void __cdecl mpfr::mpreal::set_default_prec(long)" (?set_default_prec@mpreal@mpfr@@SAXJ@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_init2" in Funktion ""public: __cdecl mpfr::mpreal::mpreal(void)" (??0mpreal@mpfr@@QEAA@XZ)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_swap" in Funktion ""public: __cdecl mpfr::mpreal::mpreal(class mpfr::mpreal &&)" (??0mpreal@mpfr@@QEAA@$$QEAV01@@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_set_d" in Funktion ""public: __cdecl mpfr::mpreal::mpreal(double,long,enum mpfr_rnd_t)" (??0mpreal@mpfr@@QEAA@NJW4mpfr_rnd_t@@@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_set_si" in Funktion ""public: __cdecl mpfr::mpreal::mpreal(int,long,enum mpfr_rnd_t)" (??0mpreal@mpfr@@QEAA@HJW4mpfr_rnd_t@@@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_set4" in Funktion ""public: class mpfr::mpreal & __cdecl mpfr::mpreal::operator=(class mpfr::mpreal const &)" (??4mpreal@mpfr@@QEAAAEAV01@AEBV01@@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_add" in Funktion ""class mpfr::mpreal const __cdecl mpfr::operator+(class mpfr::mpreal const &,class mpfr::mpreal const &)" (??Hmpfr@@YA?BVmpreal@0@AEBV10@0@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_sub" in Funktion ""class mpfr::mpreal const __cdecl mpfr::operator-(class mpfr::mpreal const &,class mpfr::mpreal const &)" (??Gmpfr@@YA?BVmpreal@0@AEBV10@0@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_mul" in Funktion ""class mpfr::mpreal const __cdecl mpfr::operator*(class mpfr::mpreal const &,class mpfr::mpreal const &)" (??Dmpfr@@YA?BVmpreal@0@AEBV10@0@Z)".
1>Zone.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "mpfr_cmp_si_2exp" in Funktion ""bool __cdecl mpfr::operator<=(class mpfr::mpreal const &,int)" (??Nmpfr@@YA_NAEBVmpreal@0@H@Z)".
1>C:\Users\mpohl\Documents\Visual Studio 2010\Projects\EclToF3grid\x64\Release\fishecltof3grid005_64.dll : fatal error LNK1120: 13 nicht aufgelöste externe Verweise.

它们是未解析的外部参考

0 个答案:

没有答案