Je rencontre un problème en essayant de construire un peu de code. (Je suis sur linux)Problème entre Eigen, make et cmake (probablement une erreur cmake)
Pour faire simple:
Voici ce que j'ai dans mon dossier de Position.h (au début vraiment, je pense que la prochaine n'est pas nécessaire de résoudre ce numéro):
#include <Eigen/Dense>
et voici mon CMakeLists.txt:
project(p)
include_directories("./Eigen")
add_executable(
p
Eigen/Dense
Position.h # wich requires Eigen/Dense
Position.cpp
#other files
)
Dans le répertoire du projet il y a deux répertoires: construire et Eigen
Pour créer le Makefile, je vais dans le répertoire de construction, puis, tapez cmake ..
. Un Makefile est créé, mais lorsque je tente de make
i a l'erreur:
/path/to/Position.h:30:23: fatal error: Eigen/Dense: no such file or directory.
Position.h est d'un code pris de GitHub (je peux vous donner le lien si désiré).
S'il vous plaît, pouvez-vous me donner une direction à la recherche ou peut-être si vous voyez ce qui est mal, ce qui est mon erreur
Merci!
Merci beaucoup! le premier fonctionne parfaitement =) Je n'utilise pas 'finde_module' parce que je n'ai pas réussi à compiler Eigen, et comme ce n'est pas nécessaire (Eigen ne peut fonctionner qu'avec des en-têtes), je n'ai pas pris le temps. Alors merci encore pour votre aide! – Tristan
Le second est assez sympa parce que cmake a un module intégré qui recherche Eigen et définit une variable avec le répertoire include. Cela signifie que votre projet ne dépend pas de l'Eigen résidant dans un endroit spécifique (relatif ou absolu). Cela vous permettra de distribuer votre projet à quelqu'un d'autre ou de l'installer sur un autre ordinateur avec un autre système d'exploitation et aussi longtemps que Eigen sera installé dans un endroit raisonnable, cmake le trouvera. – Stewart