Erreur lors de la compilation avec boost

J’ai écrit le projet qui utilise , j’ai ajouté include répertoire include répertoires Additional Include directories , et le dossier lib à l’éditeur de liens. Mais quand j’essaie de construire une solution, erreur:

Erreur 1 erreur LNK1104: impossible d’ouvrir le fichier ‘libboost_thread-vc100-mt-sgd-1_50.lib’

J’ai cherché ce fichier dans le répertoire lib, mais aucun fichier portant ce nom dans le répertoire lib. J’ai trouvé un fichier avec un nom similaire, libboost_thread-vc100-mt-gd-1_50 .

Qu’est-ce que je fais mal?

Votre problème semble être assez similaire à celui de cette question . Selon les conventions de dénomination décrites ici, la seule différence entre la bibliothèque que l’éditeur de liens souhaite utiliser et la bibliothèque que vous possédez est que les liens précédents sont liés statiquement à la bibliothèque standard c ++ et aux bibliothèques de support d’exécution du compilateur. Je peux penser à deux façons de résoudre ce problème:

  1. Obtenez la bibliothèque que l’éditeur de liens veut
    une. Si vous avez utilisé le programme d’installation de boostpro:

    Assurez-vous de cocher la case Multithreaded debug, static runtime (je vous recommande de les cocher tous).

    b. Si vous avez construit la bibliothèque vous-même:

    Ouvrir une fenêtre de console
    Changer de répertoire à votre racine boost
    La commande suivante construit la bibliothèque requirejse:
    b2 toolset=msvc-10.0 --with-thread address-model=64 variant=debug link=static runtime-link=static runtime-debugging=on stage
    (Je recommanderais d’utiliser:
    b2 toolset=msvc-10.0 address-model=64 --build-type=complete stage )

  2. Faites en sorte que l’éditeur de liens utilise la bibliothèque de votre choix
    une. Faire en sorte que la liaison automatique utilise les bibliothèques partagées

    Vous pouvez définir BOOST_THREAD_DYN_LINK (pour n’affecter que la bibliothèque de threads) ou BOOST_ALL_DYN_LIB (pour affecter toutes les bibliothèques de renforcement) avant l’inclusion des fichiers d’en-tête (ou de préférence dans les parameters de pré-traitement de votre projet VC). Cela obligerait l’éditeur de liens à utiliser la bibliothèque boost_thread-vc100-mt-gd-1_50.lib (notez que le preffix de lib est manquant).

    b. Désactiver la liaison automatique

    Vous pouvez définir BOOST_ALL_NO_LIB puis append le nom exact de votre bibliothèque dans vos options d’éditeur de liens.