Erste Versuche mit cmake
-
Hi,
ich habe ein Eclipse-Projekt, das soweit auch kompiliert werden kann. Jetzt habe ich mir dazu ein Cmake-File geschrieben, das irgendwie nicht funktioniert.
Hier mal die Datei:
cmake_minimum_required(VERSION 2.8.0) project(Matlab_Test) include_directories("/usr/local/MATLAB/R2012a/extern/include" "${PROJECT_SOURCE_DIR}/include" "$(shell rospack find biorob_robot_interface)/include") link_directories(/usr/local/MATLAB/R2012a/bin/glnx86) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) add_definitions(-std=c++0x) add_executable(matlabtest src/main.cpp) target_link_libraries (matlabtest eng mx mex)Bei der Ausführung von make erhalte ich den Fehler, dass die IDevice.hpp nicht gefunden werden kann. Diese liegt in dem Ordner, der oben mit "$(shell rospack find biorob_robot_interface)/include" eingefügt wird. Den Shell-Befehl habe ich im Terminal ausprobiert, der liefert mir eigentlich den richtigen Ordner.
Kann mir jemand sagen was daran falsch ist die Datei so einzubinden?
-
Pack mal die folgende Zeile in dein CMake Skript und schau Dir mal an, ob das den gewünschten Include-Pfad ergibt:
MESSAGE("$(shell rospack find biorob_robot_interface)/include")Ansonsten kenne ich mich nicht mit den Variablen in der Shell aus... vielleicht musst Du auch Dir eine CMake Variable anlegen, die den Inhalt der Shell Variable übernimmt.
Ich hoffe, es hilft Dir aber weiter.
-
Ja danke, wenn ich den Pfad hinschreibe funktioniert es. Ansonsten gibt er bei der Ausgabe eins-zu-eins einfach den ganzen Ausdruck aus. Muss ich noch irgendetwas einbinden damit aufrufe der Form $(...) funktionieren? Ich finde leider die Datei nicht mehr aus der ich das rauskopiert hatte, aber es hat auf jedenfall mal funktioniert.
-
Ich bin nicht sicher ob ich dein Problem verstanden habe, aber mit $ENV{name der environment variable} kann auf Environment Variablen zugegriffen werden.
-
Will aber ja keine Umgebungsvariable auslesen. Eigentlich soll er auf der Shell den Befehl "rospack find biorob_robot_interface" ausführen. Der liefert als Rückgabe den Pfad zu dem Ordner. Ist aber jetzt nicht so wichtig, muss man den Ordner halt immer selbst ändern..