2016-06-02 16 views
0

Ich arbeite an einem C++ - Projekt mit Eigen. Vor kurzem habe ich eine Funktion zu Eigen MatrixBase die empfohlene Art und Weise hier beschrieben ist:Sicherstellen, dass define beim Neukompilieren verarbeitet wird

https://eigen.tuxfamily.org/dox/TopicCustomizingEigen.html

Diese Webseite wird erklärt, wie eine neue Eigen Funktion in einer neuen Datei MatrixBaseAddons.h genannt hinzuzufügen. Dann fragt es EIGEN_MATRIXBASE_PLUGIN

zu definieren, dann kann man die folgende Erklärung in der config.h hinzufügen oder was auch immer Voraussetzungen Header-Datei seines Projekts:

#define EIGEN_MATRIXBASE_PLUGIN "MatrixBaseAddons.h"

Dies ist der Teil, der mich stört ... Ich habe das Projekt, an dem ich arbeite, nicht erstellt und bin neu bei CMake. Ich sehe keine config.h-Datei in unserem Projekt und weiß nicht, wo die obige Definition hinzugefügt werden muss, um sicherzustellen, dass EIGEN_MATRIXBASE_PLUGIN immer definiert ist.

Wie können wir in einem C++ - Projekt mit CMake die Reihenfolge anzeigen/ändern, in der die Dateien kompiliert werden? Wo sollte ich diese Zeile setzen

#define EIGEN_MATRIXBASE_PLUGIN "MatrixBaseAddons.h" 

um sicherzustellen, dass es immer definiert ist?

+0

Klingt wie der Schlüsselsatz ist "Welche Headerdatei Header seines Projekts". – aquirdturtle

+0

Nur wundernd * warum * sollten sie diesen Ansatz über die Vererbung bevorzugen ... – Aconcagua

+0

Offenbar unterstützt die MatrixBase viele verschiedene Typen und Funktionalitäten und ich nehme an, dass man möglicherweise etwas durch Überschreiben der Basisklasse brechen könnte. Ich weiß nicht, ob Sie sich den Link in meiner Frage angeschaut haben: Das Dokument legt klar fest: 'Bevor ich von Matrix erben bin, meine ich WIRKLICH, dass die Verwendung von EIGEN_MATRIX_PLUGIN nicht das ist, was Sie wirklich wollen erste Option –

Antwort

1

versuchen, die folgende Zeile in der CMakeLists Zugabe:

add_definitions(-DEIGEN_MATRIXBASE_PLUGIN="MatrixBaseAddons.h") 

dies Ihre Definitionen zu Ihrer Compiler-Befehlszeile hinzufügen. Weitere Informationen in CMake add_definitions page

+0

Danke! Es klappt –

Verwandte Themen