2016-03-27 18 views
-1

Eigen ist in der Datei C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9compilieren Eigen C++ QT

Ich dachte eigen Sie nur

verwenden
`#include "C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9\Eigen/Dense" ` 

aufzunehmen Aber es kompiliert nicht. Ich weiß, dass es funktionieren kann, weil ich es vorher getan habe, und die Eigenwebsite erklärt nicht, wie man das tut, es sei denn, Sie verwenden bestimmte Programme wie g ++.

+0

Welchen Fehler bekommen Sie? Bitte geben Sie mehr Kontext an –

Antwort

-1

Ok dann, was Sie tun müssen, ist:

  1. Kopieren Sie die C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9\EigenVerzeichnis und seinen Inhalt dorthin, wo Sie alle Ihre Drittanbieter-Bibliothek-Dateien auf Ihrem Computer zu halten sind. (Sie möchten diese Dateien wahrscheinlich nicht in Ihrem Ordner Downloads aufbewahren). Nehmen wir beispielsweise an, dieses Verzeichnis wird nach C:\jacks_code\Eigen kopiert. Dann

  2. Dieses neue Verzeichnis Qt-Creator-Liste der Verzeichnisse zu suchen (Aki Antwort für Links zu sehen):

  3. In jedem der Quelldateien, um die Eigen-Vorlagen enthalten, verwenden Sie die Präprozessordirektive :

    #include <Dense>

der Compiler wird die Verzeichnisse verwenden Sie es gesagt, zu dereferenzieren die Datei C:\jacks_code\Eigen\Dense (der vollständige Dateiname). Es ist ein wenig verwirrend hier, weil die Dateien im Ordner Stamm Eigen .h oder .c oder .cpp oder .hpp Erweiterungen nicht haben.

Hoffe, dass hilft. Sie können auch die Datei INSTALL in der Basis des entpackten Pakets lesen.

+0

Wie finden Sie die Header-Datei zu verwenden –

+0

Die Eigendokumentation/help library/readme sollte Ihnen eine Liste der Dateien in Ihrem Programm enthalten. Sobald Sie den gesamten Dateipfad und Dateinamen haben, können Sie ihn auf diese Weise hinzufügen. Beachten Sie, dass Leerzeichen in den Dateinamen möglicherweise durch das Zeichen "\" getrennt werden müssen. Zum Beispiel: #include "C: \ Benutzer \ jherb_000 \ Downloads \ eigen-eigen-07105f7124f9 \ eigenvector.h" , um "eigenvector.h" in genau diesem Verzeichnis einzubeziehen. Sie können das Verzeichnis durchsuchen und sehen, welche Dateien es gibt. – jrsmolley

+0

also sagst du, dass der Dateiname der eigentlichen Eigen-Datei ist was du nach Eigen/Dense brauchst? –

1

Da Sie über die Tags, die Sie mit qt-creator verwenden, implizieren, läuft Ihr Problem auf "Wie füge ich ein Include-Verzeichnis in qt-creator hinzu?" Es gibt Antworten darauf here, here und andere. Eine Sache zu beachten ist, dass der Pfad, den Sie hinzufügen sollten, C:\Users\jherb_000\Downloads\eigen-eigen-07105f7124f9 ist.

Was passiert, wenn Sie eine bestimmte Datei in ein bestimmtes Verzeichnis einschließen, wenn diese Datei nicht andere Dateien (ok, andere Dateien, die nicht in den Include-Pfaden sind) #include funktioniert alles gut. Wenn dies jedoch der Fall ist (und Eigen-Dateien eine andere Datei im Eigen-Projekt enthalten), weiß der Compiler nicht, wo er nach ihnen suchen soll. Deshalb müssen Sie dem Compiler explizit mitteilen, welche Verzeichnisse nach enthaltenen Dateien suchen sollen.

+0

ausführen Vielleicht ruft das OP 'C: \ Users \ jherb_000 \ Downloads \ Eigen-Eigen-07105f7124f9' eine Datei (Datei-Ordner), wenn es eigentlich ein _Directory_ ?? – jrsmolley

+0

@ruffles Nein, Eigen wird jedes Mal in ein Verzeichnis mit einer anderen seltsamen Erweiterung entpackt. Laden Sie es herunter und probieren Sie es aus. –

+0

Ok, also habe ich die .tar.gz von 'http: // bitbucket.org/eigen/eigen/get/3.2.8.tar.bz2' heruntergeladen und entpackt zu:'/home/john/downloads/eigen-eigen -07105f7124f9/'. @Avi Ich bin mir nicht sicher, wie sich die Erweiterung ändern würde, wenn er nicht der 'INSTALL'-Datei folgt und' cmake' oder 'make' verwendet, wenn er versucht zu bauen. – jrsmolley