Question

Je suis assez novice dans l'utilisation de boost et je n'arrive pas à trouver de documentation sur la distribution de votre application lorsque vous utilisez boost.

La plupart des bibliothèques sont des bibliothèques partagées. Je ne m'attends pas à ce que mes utilisateurs soient équipés de boost, je n'utilise qu'une seule bibliothèque (regex). Il existe donc un moyen simple de conditionner la bibliothèque regex avec mon application sans la compiler. avec la version statique?

Était-ce utile?

La solution

Linux

Pour la distribution binaire, je vous recommande d'utiliser la gestion des paquets de la distribution, qui devrait prendre en charge toutes les dépendances. Certaines applications commerciales n'utilisent que des blobs binaires et vous devez installer vous-même une version de boost.

La recherche de bibliothèques est un peu plus difficile sous Linux. Il ne charge pas automatiquement les objets partagés à partir du répertoire en cours s'ils sont liés lors de la compilation (par opposition au chargement à l'exécution avec dlopen).

Vous devez utiliser la variable env LD_LIBRARY_PATH ou utiliser rpath . Les deux ont leurs inconvénients.

Windows

Il n’ya aucun moyen de contourner les dlls. L’approche habituelle consiste à tout mettre dans un répertoire et à le compresser.

Les deux

Pour compiler à partir des sources, vous avez de toute façon besoin des sources boostées. Inutile donc d'inclure des bibliothèques.

De toute façon, la plupart des bibliothèques dans boost n’ont qu’en-tête, regexp n’en fait pas partie. Il devrait suffire d'inclure des DLL pour ce module. Sous Linux, vous pouvez vérifier sur quelles bibliothèques partagées votre binaire est compilé en utilisant:

ldd binary
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top