Ошибки в mpreal.h при использовании 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': функция не принимает 1 аргумент
mpreal.h(2630): ошибка C2665: "mpfr::grandom": посредством не одного из двух оверлодов можно преобразовать все типы аргументов
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();
};
каст:
#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.
Это неразрешенные внешние ссылки