Frage

Ich habe die NTL inifite Präzision Integer-Arithmetik-Bibliothek für C ++ kompiliert wird, mit Microsoft Visual Studio 2008. Ich habe wie erläutert, auf diese Seite , das Visual Studio-Schnittstelle, anstatt von der Eingabeaufforderung. Eigentlich würde ich es eher an der Eingabeaufforderung, aber ich war nicht sicher, wie.

Wie auch immer, habe ich die Bibliothek zusammengestellt, und ich mag nun ein Programm mit der Bibliothek erstellen, von der Eingabeaufforderung. Das Programm, das ich zu kompilieren bin versucht, wurde auf einem Linux-System getestet, wo ich es mit dem folgenden

kompilieren
c++ -I/appl/htopopt/Linux_x86_64/NTL-5.4.2/include mpqs.cpp main.cpp -o main -L/appl/htopopt/Linux_x86_64/NTL-5.4.2/lib -lntl -L/appl/htopopt/Linux_x86_64/gmp-4.2.1/lib -lgmp -lm

Nevermind die gmp Sachen, ich nicht, dass unter Windows installiert haben. Es ist lediglich eine optionale Sache, die die NTL schneller laufen machen. Wie auch immer, das funktioniert fein auf Linux. Jetzt auf Windows schreibe ich die folgende

cl /EHsc /I D:\Downloads\WinNTL-5_5_2\include mpqs.cpp main.cpp /link /LIBPATH:"D:\Documents\Visual Studio 2008\Projects\ntl\Debug"

Aber diese Ergebnisse in den folgenden Fehlern:

mpqs.cpp
mpqs.cpp(38) : error C2039: 'find_smooth_vals' : is not a member of 'QS'
        d:\desktop\qs\mpqs.h(12) : see declaration of 'QS'
mpqs.cpp(41) : error C2065: 'M' : undeclared identifier
mpqs.cpp(41) : error C2065: 'n' : undeclared identifier
mpqs.cpp(42) : error C2065: 'sieve_table' : undeclared identifier
mpqs.cpp(42) : error C2228: left of '.size' must have class/struct/union
        type is ''unknown-type''
mpqs.cpp(43) : error C2065: 'sieve_table' : undeclared identifier
mpqs.cpp(44) : error C2065: 'qx_table' : undeclared identifier
mpqs.cpp(44) : error C3861: 'test_smoothness': identifier not found
mpqs.cpp(45) : error C2065: 'smooth_indices' : undeclared identifier
mpqs.cpp(45) : error C2228: left of '.push_back' must have class/struct/union
        type is ''unknown-type''
main.cpp
Generating Code...

Es ist, als ob meine mpqs.h Datei nicht in den Übersetzungsvorgang enthalten ist? Ich nicht auch verstehen, warum es beschwert sich über .push_back () für einen Vektortyp?

Hilfe ist sehr willkommen!

War es hilfreich?

Lösung

mpqs.h ist auf jeden Fall einbezogen werden wie die Ausgabe fordert Sie auf, es zu verweisen.

als MPQS.h Sehen erscheint nicht in der NTL-Bibliothek aufgenommen werden ... haben Sie es geschrieben? Wenn ja, können Sie den Code post up?

Auch sollte nicht enthalten Sie die Bibliotheksdatei irgendwo auf Ihrem Build?

Edit: Es gibt keine Funktion find_smooth_values ??also warum sollten Sie MSVC erwarten, dass es zu finden? Ich bin mir nicht sicher, warum das compiles unter GCC aber seine offensichtlich fehlt. Ich vermute, dass die anderen Fehler, weil dieser einen verursacht werden. Die Fehler erzählst du Dinge. Sie sollten auf sie hören.

push_back versagt, weil er nicht weiß, was der Typ, den Sie versuchen, in push_back ist. Dies wiederum wird wahrscheinlich verursacht durch die Tatsache, dass find_smooth_values ??existiert nicht. Versuchen Sie, den Funktionsprototyp in die QS-Klasse hinzufügen. Dies kann auch alle Ihre Probleme beheben.

Wie für die Bibliothek wird es nicht mit der Bibliothek erhalten, bis die Kompilierung erfolgreich ist. Also keine Sorge, dass etwa gerade jetzt. Erhalten Sie dort und beheben Sie die Fehler, die MSVC ist Berichterstattung!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top