CONAN und der MSVC Debugger
« | 24 Jul 2021 | »Eine weitere Story in meinem CONAN Tagebuch ist seine schwierige Beziehung zu Debuggern.
Denn obgleich conan build .
brav im lokalen Verzeichnis alle Quellcodes
durchbauen kann, so bekommen wir dann jede Menge fehlende Abhängigkeiten,
wenn wir die gebauten Programme im Debugger ausführen möchten.
CONAN’s wichtigstes Feature ist aus meiner Sicht auch sein größter Bug. Alles wird in den CONAN-Cache geladen und ein Projekt bekommt z.B. für CMAKE jede Menge Variablen injiziert, wo die Pfade zu den benötigten Headern und weitere Sourcen hinterlegt sind.
Das klappt in der Regel recht gut und der Compiler kann alles finden,
was unter requirements
auf der CONAN Seite deklariert ist.
Doch wenn man eine EXE ausführen will, braucht man auch die Binärdateien und diese sind ebenfalls im CONAN Cache in einem der unzähligen Hash-Paket-Unterverzeichnisse versteckt.
Der reguläre Weg wäre nun, eine virtuelle Laufzeitumgebung
(virtual run-environment) per CONAN einrichten zu lassen.
conan install . -g virtualrunenv
würde das erledigen und dann hat
man ein .sh
und ein .bat
Script in seinem Verzeichnis, das bei
Ausführung alle benötigten Verzeichnisse als PATH
oder LD_LIBRARY_PATH
einrichtet.
Innerhalb dieser Umgebung lässt sich dann auch problemlos ein Debugger starten um das Projekt zu inspizieren.
…. doch, wenn man viele CONAN Projekte verwaltet, ist das echt mühsam.
Visual Studio PATH Patch
Ein tolle Lösung, die meine Kollegen in der Firma gefunden haben, sieht
wie folgt aus:
Man definiert in CMAKE die target-Variable VS_DEBUGGER_ENVIRONMENT
und
setzt sie auf den Wert Path=${CONAN_BIN_DIRS};%Path%
. Das sieht dann etwa
so aus:
Lässt man nun ein MSVC Projekt erstellen, werden dem quasi alle notwendigen Infos injiziert und man kann direkt seine Software (per F5) starten und wegen der gesetzten Pfad Variable können auch alle anderen notwendigen von CONAN verwalteten Module geladen werden.
Fazit
Es sind solche Kleinigkeiten, die das Leben entscheidend erleichtern und in
Summe Stunden einsparen.
Und diese eine CMAKE Zeile macht das Arbeiten zumindest unter Windows mit
CONAN und MSVC um Längen erträglicher.
Doch für mich zeigt das Beispiel, dass es auf diese Weise vielleicht auch
einen Weg gibt, einer Linux / POSIX
Umgebung ein schöneres Arbeiten mit CONAN beizubringen.
Mal sehen, ob ich da auch was dazu finden kann …