Bibliothek benutzen
-
Hi. Mir scheints als sei mein Problem gelöst. kann die anderen Header nun auch einfach mit #include einbinden.
Vielen Dank für die Hilfe
-
Zu früh gefreut : )
Jetzt bekomm ich folgende Linker-Fehler1> Teilnehmer.cpp
1>ManifestResourceCompile:
1> Alle Ausgaben sind aktuell.
1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""int const __cdecl operator==(class LINT const &,class LINT const &)" (??8@YA?BHABVLINT@@0@Z)" in Funktion "_main".1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: class LINT const & __thiscall LINT::operator=(class LINT const &)" (??4LINT@@QAEABV0@ABV0@@Z)" in Funktion "_main".
1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""class LINT const __cdecl operator/(class LINT const &,class LINT const &)" (??K@YA?BVLINT@@ABV0@0@Z)" in Funktion "_main".
1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""class LINT const __cdecl operator*(class LINT const &,class LINT const &)" (??D@YA?BVLINT@@ABV0@0@Z)" in Funktion "_main".
1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall LINT::LINT(int)" (??0LINT@@QAE@H@Z)" in Funktion "_main".
1>C:\Users\Matthias\Documents\Visual Studio 2010\Projects\extended_Euklid\Debug\RSA.exe : fatal error LNK1120: 5 nicht aufgelöste externe Verweise.
1>
1>Fehler beim Erstellen
1>
1>Verstrichene Zeit 00:00:02.51
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen =========Kann mir jemand sagen wie ich rausfinden kann was das bedeutet ?
-
Was benutzt Du für eine IDE?
Meine Anleitung war für Visual Studio (2010).
Gibt übrigens in der Express Edition gratis!Simon
-
Jep, benutze auch Visual Studio 2010.
-
Kann mir jemand sagen wie ich rausfinden kann was das bedeutet ?
Die Fehler bedeuten, dass die Definition (in der Lib) der entsprechenden Funktionen nicht gefunden wird. Die Deklaration (im Header) wurde gefunden.
Ein Bsp:
1>Test2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall LINT::LINT(int)" (??0LINT@@QAE@H@Z)" in Funktion "_main".
Im File Test2.cpp, welches zu Test2.obj kompiliert wird, gibts ein Objekt vom Type LINT, welches den Konstruktor mit einem int Argument aufruft.
Etwa so:LINT lint(23);
Die Definition des Konstruktors wird nun nicht gefunden. Das kann bedeuten, dass die Library falsch benutzt wird, sie nicht gefunden wird, etc.
Zeige mal deinen Bsp. Code - ich hoffe er ist entsprechend klein.
-
hey. kann übers we nicht an den code ran. werde ab montag aufjedenfall weiter dran arbeiten
wünsche ein schönes wochenende
gruß mättes
-
gute morgen, hier der zugehörige Quellcode:
(reine Spielerei. Teilnehmer.h und Support.h sind von mir erstellte Header(auch die Namespaces). Zu der Bibliothek die ich benutzen will gehören die anderen Header)#include "Teilnehmer.h" ##include "Teilnehmer.h" #include "Support.h" #include "flint.h" #include "flintpp.h" #include "_assert.h" #include "kmul.h" #include "ripemd.h" using namespace Teilnehmer; using namespace RSA_maths; using namespace Translate; int main() { int i = 234232; LINT k (i); LINT j = 10000 * k; j = j / 10000; keep_window_open(); }
Mich würde mittlerweile auch ein guter Literaturtipp für VisualStudio interessieren.
mfg mättes
-
Hier ein Teil der Dokumentation der Bibliothek:
The cdrom contains the following directories and files:
Directory files Description
--------- ----- -----------
flint/src:flint.c C functions for arithmetic and number theory
flint.h Header file for flint.c
kmul.c Karatsuba multiplication
kmul.h Header file for kmul.c
_assert.h Header file with dummy assertion macros
ripemd.c Implementation of the hash function RIPEMD160
ripemd.h Header file for ripemd.c
flintpp.cpp Implementation of the arithmetic class LINT
flintpp.h Header file for flintpp.cppflint/src/asm:
mult.asm Multiplication function mult() in 80x86 assembler
umul.asm Multiplication function umul() in 80x86 assembler
sqr.asm Squaring function sqr() in 80x86 assembler
div.asm Division function div_l() in 80x86 assemblerflint/lib:
flinta.lib Library providing the objectcode of the assembler
functions in OMF format for usage under DOS,
Windows, OS/2
flintavc.lib Library providing the objectcode of the assembler
functions in COFF format for usage with lcc-win32,
Microsoft Visual C/C++ and other environments
flinta.a Archive providing the objectcode of the assembler
functions for usage with emx/gcc under OS/2 and
Windows (9x, NT)
libflint.a Archive providing the objectcode of the assembler
functions for usage with gcc under LINUX (on Pentium
or compatible hardware platforms)flint/lib/dll:
flint.dll Dynamic Link Library (DLL) providing the C functions
and data of the FLINT/C package (developed with
Visual C/C++ V. 6.0)
flint.def FLINT/C symbols that are exported by flint.dll
flint.lib COFF import library for flint.dll
makedll.bat Batch file for the generation of flint.dll and
flint.lib under Visual C/C++
dllmain.c Function for initialization of flint.dll
-
Ich nehme an, dass die dir vorliegende Version der flint.lib und flint.dll mit VC++6.0 (uralt) erstellt wurden - das passt nicht zu VS2010.
Du könntest versuchen, dass flint Projekt auch mit VS2010 zu builden. Oder gar keine Library machen, sondern den Code direkt in dein Projekt einbinden.
Simon
-
Hi. Dann versuch ich vielleicht einen anderen Weg zum Ziel.
Was ich brauche ist einfach einen Datentyp der mit große Zahlen in Visualc++ bereitstellt.
Habe das auch mal mit MPIR(http://www.mpir.org/) und dieser: https://mattmccutchen.net/bigint/ versucht.
Aber am Einbinden bin ich bisher immer gescheitert. Falls es noch andere(einfachere) Bibliotheken für großen Zahlen in Visualc++ gibt, würde ich die auch mal ausprobieren. Dabei is mir wohl Usability viel, viel wichtiger als Perfomance : )
-
Ok.
Hier wäre noch eine Alternative die ev. ein wenig einfacher einzubinden ist: http://sourceforge.net/projects/cpp-bigint/
Ansonsten musst Du halt konkrete Fragen stellen.
Simon