Ошибки в 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.

Это неразрешенные внешние ссылки

0 ответов

Другие вопросы по тегам