Je tente de construire une bibliothèque statique C/C++ en utilisant Visual Studio 2005. Comme la sélection de la bibliothèque d'exécution est une option de compilation, je suis obligé de construire quatre variantes de ma bibliothèque, une pour chaque variation de la bibliothèque d'exécution :Pourquoi la bibliothèque d'exécution est-elle une option du compilateur plutôt qu'une option de l'éditeur de liens?
- /MT - bibliothèque d'exécution statique
- /MD - bibliothèque d'exécution DLL
- /MTd - débogage bibliothèque d'exécution statique
- /MDd - débogage bibliothèque d'exécution DLL
Ce sont compilateur options, pas les options de l'éditeur de liens. Venant d'un arrière-plan Linux, cela semble étrange. Les différentes bibliothèques d'exécution ont-elles différentes conventions d'appel ou quelque chose? Pourquoi les différentes bibliothèques d'exécution ne peuvent-elles pas être résolues au moment de la liaison, c'est-à-dire lorsque je lierai l'application qui utilise ma bibliothèque statique?
Bien qu'il semble y avoir de bonnes raisons à cela dans les réponses - je suis d'accord avec vous. Je finis toujours par chercher ce réglage au mauvais endroit. Même chose avec les paramètres En-têtes précompilés - il a sa propre catégorie au lieu d'être quelque chose dans la section Préprocesseur. –