我正在尝试使用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(){
}
这些是我的包含路径:
修改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.
它们是未解析的外部参考