Es gibt zwei Strategien, die Debug-Abhängigkeiten funktionieren könnte:
- es Erzwingen von Quellen zu bauen, mit dem
--build=PkgName
Argumente. Wenn Sie das Paket in Abhängigkeit vom Build-System aus Quellen erstellen, ist es möglich, dass die binären Artefakte auf den temporären Build-Ordner verweisen, in dem das Paket erstellt wurde. Anschließend können Sie sie finden und debuggen. Diese Strategie kann für Pakete von Drittanbietern verwendet werden, auch wenn sie das Debuggen nicht in Betracht ziehen.
- Wenn Sie die Pakete selbst erstellen und das Binärartefakt direkt debuggen möchten, ohne es aus der Quelle neu zu erstellen, dann wäre der richtige Weg, auch die Quellen zu packen. Wenn der Debugger Hilfe benötigt, um diese Quellen zu finden, sollte er verwendet werden.
Mit gdb
könnten Sie so etwas wie
def build(self):
cmake = CMake(self.settings)
gcc_dbg_src = ""
if self.settings.compiler == "gcc" and self.settings.build_type == "Debug":
gcc_dbg_src = ' -DCMAKE_CXX_FLAGS="-fdebug-prefix-map=%s/hello=src"' % os.getcwd()
self.run('cmake hello %s %s' % (cmake.command_line, gcc_dbg_src))
self.run("cmake --build . %s" % cmake.build_config)
def package(self):
self.copy("*.h", dst="include", src="hello")
if self.settings.build_type == "Debug":
self.copy("*.cpp", dst="src", src="hello")
self.copy("*.lib", dst="lib", keep_path=False)
self.copy("*.a", dst="lib", keep_path=False)
Um sicherzustellen, dass Sie, dass Sie mit den richtigen Flags kompilieren, und auch, dass die Quelldateien sind zu verpackt. Dann möchten Sie auf der Consumer-Seite imports
die Dateien, so dass der gdb
Debugger sie neben der binären Debuggen finden kann, oder spielen Sie mit Ihrem Debugger-Pfad, um den Paketordner hinzuzufügen.
in Windows mit Visual Studio, mögen Sie wahrscheinlich die .pdb
-Dateien verpacken
gelöscht Antwort, wie ich weiß nicht, was die Conan (mit Ausnahme des Barbaren) ist –
@PeterJ Conan ist Paket-Manager für C und C++ Bibliotheken . Ich habe einen Link auf die offizielle Seite in der Antwort. Das Paket enthält normalerweise neben seinen Headern bereits eine Build-Bibliothek. Es scheint, dass die Quelle standardmäßig nicht im Paket verfügbar ist. – bobeff
Ich denke, dass Sie hier suchen möchten: https://github.com/conan-io/conan – mko