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?
Klingt wie der Schlüsselsatz ist "Welche Headerdatei Header seines Projekts". – aquirdturtle
Nur wundernd * warum * sollten sie diesen Ansatz über die Vererbung bevorzugen ... – Aconcagua
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 –