Lorsque j’utilise Visual Studio 2012, avec la liaison automatique, je n’ai pas besoin d’append les bibliothèques boost / POCO / python manuellement, elles sont ajoutées automatiquement. Et si une bibliothèque me manque, je reçois un message comme celui-ci:
LINK: erreur fatale LNK1104: impossible d’ouvrir le fichier ‘libboost_system-vc110-mt-1_55.lib’
Mais comment sait-il quel fichier je veux lier? Peut-être que je veux lier dynamicment, en utilisant boost_system-vs110-mt-1_55.lib, ou j’en veux un avec gd ou sgd en nom?
Comment fait-il le choix?
Le problème est que mon programme recherche des bibliothèques libboost_ … (statiques), lors de la recherche de systèmes, de threads, etc., mais il souhaite un boost_ (dynamic) pour python, et je ne comprends tout simplement pas pourquoi?
Visual Studio permet aux directives #pragma
du code source de définir les options de l’éditeur de liens. Pour “lier automatiquement”, Boost utilise ces #pragma's
en combinaison avec les macros existantes.
En particulier, il semble que vous recherchiez la macro BOOST_ALL_DYN_LINK
.