vcpkg, un gestionnaire de bibliothèque pour C++

Posté par  (Mastodon) . Édité par Davy Defaud, Nÿco et Benoît Sibaud. Modéré par bubar🦥. Licence CC By‑SA.
Étiquettes :
20
25
avr.
2018
C et C++

Depuis 2016, Microsoft développe vcpkg, un outil bien sympathique qui permet de télécharger et compiler un ensemble de bibliothèques et leurs dépendances. Jusqu’à présent, cet outil était disponible uniquement pour la plate‐forme Windows. Depuis le 24 avril 2018, cet outil prend également en charge les plates‐formes GNU/Linux et macOS. vcpkg est publié sous licence MIT.

Une limite cependant est que la compilation des bibliothèques sur GNU/Linux est uniquement statique. La raison invoquée est qu’il est plus compliqué d’utiliser des bibliothèques sur GNU/Linux (LD_LIBRARY_PATH, rpath, etc.) que sous Windows, où l’on peut tout mettre dans un seul répertoire.

Quoi qu’il en soit, c’est une bonne nouvelle. Même si les paquets des distributions resteront une source privilégiée pour obtenir les fichiers de développement d’une bibliothèque, vcpkg offre une alternative intéressante pour ceux qui voudraient tout construire en statique de manière à fournir un seul binaire pour toutes les variantes de GNU/Linux.

Aller plus loin

  • # Mwarf

    Posté par  (site web personnel) . Évalué à 4.

    de manière à fournir un seul binaire pour toutes les variantes de GNU/Linux.

    Avec Snap et Flatpak, je vois pas bien l’intérêt…

    • [^] # Re: Mwarf

      Posté par  (site web personnel) . Évalué à 4.

      et AppImage…

      ce commentaire est sous licence cc by 4 et précédentes

      • [^] # Re: Mwarf

        Posté par  (site web personnel) . Évalué à 3.

        Le langage Go est conçu pour générer un binaire statique qui ne dépend d'aucune libraire, même pas de la glibc.

        Je pense que Vcpkg a un objectif similaire pour la plateforme Linux.

        Cela permet d'exécuter le même binaire sur différentes distributions GNU/Linux sans se soucier des dépendances. Et c'est encore plus facile d'intégrer l'application dans un conteneur (Docker, Flatpak, AppImage, Snap…).

        Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

        • [^] # Re: Mwarf

          Posté par  (site web personnel) . Évalué à 5.

          Il faudrait réveiller FatELF qui s’était pris une volée de bois vert par des aigris qui lui reprochaient de ne pas faire ce à quoi ça ne servait pas (par exemple de ne pas résoudre le problème du développeur qui veut cross-compiler).

          Une appimage statique multiarchitecture ça peut être cool, et aujourd’hui pas à cause du 32/63bit, mais du multiarchitecture amd64/arm et autres.

          J’ai cité AppImage pour “en rajouter” mais il y a un réel besoin pour FlatPak et AppImage, AppImage est très pratique pour une Application complètement autonome, une application graphique qui ne se soucie pas d’avoir une ou des interface texte. Mais AppImage ne montre à l’extérieur qu’un seul binaire même s’il y en a plusieurs, donc tu peux faire un AppImage d’un IDE qui contient aussi ton compilateur mais le compilateur sera accessible depuis le menu "compiler" de l’IDE mais pas depuis l’extérieur, ce qui est gênant.

          C’est une raison pour laquelle AppImage ne convient pas pour l’éditeur de niveau 3D NetRadiant, parce qu’une foultitude d’outils tiers sont utilisés, à commencer par le compilateur de map q3map2, mais un FlatPak permet de « remplir le PATH » avec les binaires qu’il faut exposer à l’utilisateur, comme les paquets ordinaires.

          AppImage ça convient bien pour un éditeur d’image comme Gimp, mais ça ne convient pas pour un IDE avec des outils autonomes qui doivent être exposés au système et utilisables par d’autres outils.

          ce commentaire est sous licence cc by 4 et précédentes

          • [^] # Re: Mwarf

            Posté par  . Évalué à 4.

            AppImage ça convient bien pour un éditeur d’image comme Gimp

            Si j’ai bien compris, pas si tu veux ajouter des plug-ins après coup…

  • # Conan hunter cpm cget buckaroo cppan ... et surement plein d'autres

    Posté par  (site web personnel) . Évalué à 2.

    C'est quoi la différence avec les autres C/C++ Dependency Manager comme
    Conan https://conan.io/
    hunter https://docs.hunter.sh/
    cpm http://www.cpm.rocks/
    cget http://cget.readthedocs.io/
    buckaroo https://buckaroo.pm/
    cppan https://github.com/cppan/cppan

  • # Commentaire supprimé

    Posté par  . Évalué à 0. Dernière modification le 29 juin 2018 à 07:38.

    Ce commentaire a été supprimé par l’équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.