9
votes

Windows Package-Manager pour les bibliothèques C ++

Je travaille sur divers projets open-source, qui impliquent les bibliothèques C ++ suivantes (& autres):

  • mupdf
  • boost
  • freactype
  • GTKMM
  • Hummus PDF Bibliothèques
  • libtiff
  • libxml2
  • WT XPDF
  • XPDF
  • POPPLER
  • zlib

    Il faut souvent longtemps pour configurer ces bibliothèques, lors de la configuration sur une machine propre. Existe-t-il un moyen d'automatiser la saisie de toutes les dépendances sur une machine Windows?

    Le plus proche que j'ai trouvé est Clake, qui vérifie que vous disposez des dépendances installées / extraites avant de générer vos fichiers de projet. Mais je n'ai rien trouvé pour Windows qui peut analyser la liste des dépendances puis télécharger + Installez les versions requises.

    Veuillez recommander un gestionnaire de packages pour Windows avec des bibliothèques C ++ à jour à jour.


0 commentaires

7 Réponses :


0
votes

Windows n'a pas de gestionnaire de paquets. Accédez au site Web des bibliothèques et téléchargez les builds Windows si elles fournissent.

Il y a quelques alternatives, mais pas sans inconvénients:

  • Cygwin: fournit un gestionnaire de paquets agréable, mais tous les fichiers binaires sont construits pour Cygwin, ce qui signifie qu'ils courent plus lentement que leur équivalent natif, toutes les applications qui les utilisent seront liées à la DLL Cygwin et que vous êtes bloqué avec cette licence. L'utilisation de l'API Win32 natif est également gênante due à une incompatibilité avec l'émulation de POSIX offerte. Seulement pour GCC.
  • mingw-get: est un gestionnaire de paquets pour le compilateur Mingw.org. Ce sont des fichiers binaires win32 natifs, mais uniquement pour une utilisation avec le GCC de Mingw.

    Il n'y a pas de gestionnaire de paquets ou une chose légèrement équivalente pour quelque chose de Visual Studio ou Mingw-W64.


2 commentaires

J'avais peur que ce soit le cas; Je vais garder la question ouverte si quelqu'un ait trouvé / créé un ...


Il y aurait une multitude de copies essentiellement des fichiers binaires à maintenir: pour chaque DLL MSVCR *, pour chaque version de Studio Visual Studio (ils rompent C ++ ABI Compatibilité avec chaque version (SP)), pour chaque version MINGW (qui pourrait être un lien techniquement à tous. Versions MSVCR * DLL). Je ne pense pas que ce soit très possible sans charges et charges de travail absurde. C'est très malheureux, je sais.



0
votes

Il n'y a pas de gestion de paquets sur Windows. Sur les développeurs Windows utilise généralement des environnements de développement tout-et-la-cuisine-évier et produisent eux-mêmes des applications monolithiques, expédiées avec toutes les dépendances.


0 commentaires

1
votes

Qu'est-ce que j'ai trouvé:

chose la plus proche de ce que je cherche:

  • Nuget

    Malheureusement, aucune des bibliothèques dont j'ai besoin dans son référentiel.

    Alors j'ai fini par avoir la plupart des bibliothèques à partir du Projet KDE4Windows et construire sur mesure le reste.


0 commentaires

1
votes

NPackD est un gestionnaire de packages pour Windows. Il y a une valeur par défaut référentiel pour les bibliothèques C ++ et aussi une tierce partie référentiel pour les bibliothèques Visual Studio 2010 64 Bit. Boost et Zlib sont déjà dans le référentiel par défaut. Si vous décidez d'utiliser npackd, vous pouvez Fichier un problème si Vous avez besoin d'autres bibliothèques.


0 commentaires

2
votes

biicode est un nouveau gestionnaire de dépendance pour C ++. Il dispose également de quelques bibliothèques que vous avez énumérées. Biicode analyse automatiquement vos fichiers source pour les dépendances, les téléchargements et les construit. Voir ici pour un exemple très cool qui inclut Freeglut.


0 commentaires

2
votes

Jetez un oeil au Hunter Package Manager lorsque vous utilisez déjà CMAKE pour configurer votre projet. Il télécharge et construit automatiquement vos dépendances avec seulement quelques lignes de code de cumake supplémentaire. Hunter est basé sur les objectifs d'exportation et d'importation de Cumake.

Par exemple, si vous souhaitez utiliser la bibliothèque GoogletTest dans votre projet basé sur CUPAKE, vous ajouteriez les lignes suivantes à votre racine cmakelists.txt xxx

Tous les bibliothèques que vous listez sont disponibles en tant que "forfaits chasseurs", mais le projet est open source afin de créer des packages de chasseurs pour vos dépendances et de les engager au projet. ici est une liste de bibliothèques déjà disponibles en tant que forfaits Hunter.

Cela ne résoudra pas tous vos problèmes de la boîte, car vous devez créer des packages de chasseurs pour vos dépendances. Mais le cadre existant fait déjà beaucoup de travail et il est préférable d'utiliser cela au lieu d'avoir une solution autonome à demi-culée.


1 commentaires

Je pense que c'est le plus proche de ce que je cherchais il y a environ 5 ans!



4
votes

VCPKG , un projet Microsoft Open Source, vous permet d'obtenir des bibliothèques C et C ++ sur Windows. < / p>


1 commentaires

Ils utilisent CMAKE ... Je suis juste ennuyé que ce n'est pas une plate-forme inter-plate-forme. Utilisé Conan la dernière fois, mais leur nombre de colis n'a pas vraiment augmenté: / - Edit: En fait, je pense que cet outil pourrait être ce que je cherchais. Va vérifier. +1