Seite 1 von 1

C++ Package-Manager

Verfasst: 26.07.2023, 16:40
von Specialist
Hi zusammen,

da ich beruflich in der Webwelt unterwegs bin, wo Paketmanager wie composer und npm mittlerweile normal sind, würde ich mal gerne wissen ob von euch schon jemand Erfahrung mit C++-Paketmanagern gesammelt hat?
Google sagt Conan wäre wohl recht bekannt. Dann gibt es wohl noch vcpkg.
Lohnt es sich da mal näher reinzuschauen oder geht man immer noch den altbekannten Weg über manuellen Download von statischen libs oder Code?
Wie siehts mit der Integration in VisualStudio aus?

Grüße, Mathias

Re: C++ Package-Manager

Verfasst: 26.07.2023, 16:50
von Krishty
Falls du Integration in VS haben willst, ist vcpkg das Tool der Wahl. Das pusht MS gerade, wo es nur geht.

Ansonsten unterstützt CMake das automatische Herunterladen von Abhängigkeiten aus Online-Repos.

Erfahrungen habe ich mit beiden nicht gesammelt außer „mal in einem Projekt gesehen“.

Re: C++ Package-Manager

Verfasst: 27.07.2023, 11:21
von Schrompf
Auf Arbeit benutzen wir Conan. Das wird aus CMake heraus ausgelöst und produziert dann einen Strauß Paths für CMake find_package-Gruppe. VisualStudio macht das dann genauso mit wie CLion, Emacs, Vim und was hier sonst noch so in Verwendung ist. Das Repository von Conan hosten wir selbst, die CI produziert und lädt da auch eigene Pakete hoch. Ich würde mich nicht wohlfühlen, wenn ich ohne Internet nicht bauen könnte, aber in anderen Programmiersprachen ist das ja üblich, sich komplett auf irgendne Firma im weiten Internet zu verlassen.

Zu Hause pflege ich meine Dependencies selbst. Ich vertraue denen nicht, und ich mag einen autarken Build.

Re: C++ Package-Manager

Verfasst: 27.07.2023, 13:04
von Chromanoid
aber in anderen Programmiersprachen ist das ja üblich, sich komplett auf irgendne Firma im weiten Internet zu verlassen.
Ich würde behaupten allein aus sicherheitstechnischen Gründen macht es häufig Sinn, einen Mirror / Proxy zu pflegen.

Hat man bei Conan nicht einen lokalen Cache? D.h. Du willst Deinen Cache im Grunde mit im Repository pflegen, damit in 10 Jahren das Projekt noch baut, obwohl Du eigentlich Deinen Paketmanager aktualisieren müsstest damit alles wieder baut? Finde ich für Hobby-Projekte irgendwie nachvollziehbar. Ich frage mich, ob man da vielleicht sogar am besten mit einem "Dev Container" fahren würde, den man dann archiviert. Dann ist man nur davon abhängig, dass das Ding noch läuft. Ich frage mich nur wie gut das für Spieleentwicklung passt. Da hat man es ja meistens mit größeren SDKs usw. zu tun.

Re: C++ Package-Manager

Verfasst: 02.08.2023, 13:56
von Specialist
Danke für eure Antworten. Ich werde beide Paketmanager mal ausprobieren und berichten.

Re: C++ Package-Manager

Verfasst: 02.08.2023, 17:01
von Thoran
Wir verwenden auch Conan mit einem Artifactory Repo. Funktioniert ganz gut. Muss mich allerdings auch nicht um die Packages kümmern, sondern verwende sie nur.

Re: C++ Package-Manager

Verfasst: 07.08.2023, 00:53
von Jonathan
Hmmm, ich hab mal nachgeschaut und VCPKG hat tatsächlich den Großteil meiner Abhängigkeiten schon dabei. Nur ein paar exotische kleine Libs von github fehlen da. Ehrlich gesagt ist das wesentlich besser als erwartet, ich dachte das sei auch nur wieder einer von 5 konkurrierenden Standards die zwar coole Ideen haben aber allesamt zu klein und unverbreitet sind um Sinn zu machen.

Vielleicht würde es sich echt lohnen das mal auszuprobieren, aber momentan kann ich mein Projekt ohne Probleme kompillieren und eigentlich will ich kein Wochenende darauf verschwenden das kaputt und anschließend wieder heil zu machen. Aber vielleicht wenn ich es das nächste mal auf einem neuen Rechner kompilieren muss...