Dois-je statique ou dynamique bibliothèques boost?
J'ai couru bjam.exe --build-dir="C:\build-boost" --build-type=minimal msvc stage
et maintenant, j'ai des bibliothèques .lib avec ces en-têtes, par exemple
libboost_serialization-vc100-mt
libboost_serialization-vc100-mt-1_45
libboost_serialization-vc100-mt-gd
libboost_serialization-vc100-mt-gd-1_45
Je crois que ce devrait être les bibliothèques statiques pour le debug et release de la version. Quand je lance le compilateur avec Multi-threaded Debug (/MTd)
il donne une erreur LNK1104: cannot open file 'libboost_serialization-vc100-mt-sgd-1_45.lib'
Il est à la recherche pour l'un avec -sgd
où vais-je tort?
Peut-être que vous pouvez essayer de construction à l'aide de "--build-type=complet” car cela va créer toutes les variantes prises en charge des bibliothèques. Voir la section "5.3.4 Invoquer bjam" dans le boost.org/doc/libs/1_42_0/more/getting_started/windows.html
OriginalL'auteur snoz | 2011-01-06
Vous devez vous connecter pour publier un commentaire.
Quelque chose qui est une sorte de trouble, c'est qu'il y a deux "statique" options pour la construction de pouce avec MSVC.
B2.exe prend l'option
link=static
qui dit coup de pouce que vous souhaitez lier statiquement. Si vous compilez votre CR de projet avec /MT ou /MTd vous aurez également besoin d'utiliser laruntime-link=static
option pour dire coup de pouce qui vous permettra de relier à la VC bibliothèques d'exécution de manière statique.C'est la deuxième
runtime-link=static
qui met le -s de l' .nom de lib.Ma ligne de commande pour la construction de boost a été
OriginalL'auteur ehambright
Vous avez la version dynamique. Statique sont délimitées par le fait qu'un "s" dans le nom. Assurez-vous que vous avez spécifié
link=static
sur lebjam
ligne de commande. Si non, vous aurez à reconstruire pour rendre les versions statiques..dlls
à la fin? J'ai seulement eu le.libs
au stade du dossier.Vous êtes à la recherche dans le mauvais dossier. Sur Windows boîtes, les libs sont traités comme construire des artefacts, qui sont ensuite copiés dans le dossier de sortie lors de la compilation de chaque bibliothèque est terminée. Vous aurez à trouver où le répertoire contenant à la fois les dll et les libs sont situés.
OriginalL'auteur Billy ONeal
Voir Stimuler la mise en route de windows la section 6.3 de nommage et la section 6.1 sur Unix de nommage
Pour les bibliothèques statiques, il doit être un s il y a par exemple -sgd si vous avez les bibliothèques dynamiques
OriginalL'auteur Mark
ici est de savoir comment je le décomposer
libboost_serialization-vc100-mt-sgd-1_45.lib
De sorte que votre compilateur est à la recherche pour le multi-thread statique de débogage de la bibliothèque(mt-sgd) que vous avez exécuté avec /MTd(Crée un débogage multithread fichier exécutable à l'aide LIBCMTD.lib). Je suppose que, par défaut, il doit être à la recherche pour la bibliothèque statique. Si vous voulez une bibliothèque dynamique, insérez ces lignes dans votre code ou de définir une macro
OriginalL'auteur Vihaan Verma
Veuillez consulter ce document:
http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html#library-naming
Là, vous pouvez trouver la signification de toutes les lettres, et comment vous pouvez construire le coup de pouce, par conséquent aussi...
OriginalL'auteur MeM