error LNK1104: impossible d'ouvrir le fichier 'libboost_thread-vc100-mt-gd-1_55.lib'
J'essaie de relier la bibliothèque partagée de boost fil dans mon application.
Système: Windows8
IDE: Visual Studio 2010
- Je construire la bibliothèque boost à l'aide de:
b2 --with-thread --build-type=complete link=shared
Je peux voir la
boost_thread-vc100-mt-gd-1_55.dll
boost_thread-vc100-mt-gd-1_55.lib
et d'autres fichiers à l'intérieur de la scène le répertoire/lib
J'ai ajouté le chemin à d'autres Répertoires de la Bibliothèque et de l'Entrée dans l'éditeur de liens option:
Supplémentaires De La Bibliothèque De Répertoires: C:/boost_1_55_0_dyn/stage/lib
D'entrée: C:\boost_1_55_0_dyn\stage\lib\boost_thread-vc100-mt-gd-1_55.lib
Je ne sais pas pourquoi sur la terre Visual Studio est à la recherche d'libboost_thread-vc100-mt-gd-1_55.lib. Je n'ai pas mentionné le libboost_thread-vc100-mt-gd-1_55.lib n'importe où dans les propriétés ou en tout lieu. J'ai même de la recherche de tous mes fichiers et dossiers à l'intérieur du projet, libboost_thread-vc100-mt-gd-1_55.lib n'est mentionné nulle part.
Passant ...et
runtime-link=static
.qu'est-runtime-link=statique a à voir avec la bibliothèque partagée?
Il a à voir avec statique d'exécution de la liaison.
eh bien, Si je voulais la liaison statique, je n'ai même pas mettre cette question ici. de toute façon j'ai la solution pour le problème déjà. 🙂
OriginalL'auteur Pritesh Acharya | 2014-03-18
Vous devez vous connecter pour publier un commentaire.
Bien j'ai oublié de mettre BOOST_ALL_DYN_LINK dans la définition de préprocesseur. Si le BOOST_ALL_DYN_LINK n'est pas défini, de dynamiser la recherche d'une librairie statique, c'est pourquoi la recherche de libboost_thread-vc100-mt-gd-1_55.lib
BOOST_ALL_DYN_LINK
danspre-processor in Project + Properties, C/C++,pre-processor, pre-processor definitions
encore eu d'erreurfatal error LNK1104: cannot open file 'boost_thread-vc100-mt-gd-1_55.lib'
+1 pour cette. Même problème. Première fois à l'aide coup de pouce dans VS. 🙂
Pour ajouter à cela, cette erreur se produit même si vous il suffit d'inclure le répertoire de la bibliothèque, mais n'en a pas vraiment utiliser toutes les bibliothèques. J'ai eu cette erreur jeté sur boost_system même si je n'étais même pas à l'utiliser.
OriginalL'auteur Pritesh Acharya
C'est de l'information supplémentaire pour la réponse Pritesh déjà posté, mais je suis nouveau ici, donc je ne peux pas commenter.
Il se résume à la compatibilité entre votre VS des paramètres du projet et la façon dont les bibliothèques boost ont été construits. Il devient un peu délicat parce que les boost et VS faire quelques autolinking pour vous. Découvrez le fichier ...\Include\boost\config\Auto_link.hpp. Il explique les algorithmes et les macros qui sera la cause de bibliothèques que vous n'avez pas explicitement inclure dans votre projet.
Par exemple, BOOST_ALL_DYN_LINK est utilisé pour aider à déterminer si la bibliothèque boost nom devrait avoir "lib" a été ajouté au nom de lors de autolink.
OriginalL'auteur Tim
En outre ,
Si vous êtes en utilisant cmake et qibuild vous pouvez essayer ceci :
Automatiquement des liens avec les bibliothèques correspondantes et de faire leurs en-têtes disponibles.
comme ceci:
OriginalL'auteur caglabaran