Question

J'ai un modèle VS .NET projet 2003, collègues copier et personnaliser l'élaboration de leur logiciel.

Il semble que le modèle a été modifié un certain temps pour définir la propriété IgnoreSpecificLibrary d'avoir libcmt.lib à la fois libération et debug (par exemple pour les deux version et le débogage, la construction doit ignorer libcmt.lib dans l'éditeur de liens).

Certains projets basés sur ce genre ont depuis été construits, avec la construction de libération de traction dans LIBCMTD.LIB (évident en regardant à travers le dossier du projet) qui semble avoir causé quelques problèmes d'exécution (par exemple un être de fenêtre de dialogue flashé comme si un point d'arrêt a été défini).

Est-ce que la mise en IgnoreSpecificLibrary d'exclure libcmt.lib faire automatiquement le lien du projet par rapport LIBCMTD.LIB?

Ce qui est étrange est que la construction du modèle (avec le réglage incorrect) des liens contre libcmt.lib alors que certains des projets sur mesure (mais pas tous) Lien contre LIBCMTD.LIB.

Toutes les idées?

Était-ce utile?

La solution

Ce qui est arrivé:

Après avoir compilé l'éditeur de liens prend vos fichiers objets et créer entre autres une table de symboles, qui a symol-demande qui n'a pas été fullfilled. Ensuite, l'éditeur de liens passe par votre liste des bibliothèques en essayant résoudre ces symboles unfullfilled. Puisque vous ignorez libcmt.lib, votre bibliothèque tiers a gauche ou ajouté quelques symboles non résolus et il contient une demande de liaison pour résoudre ceux de licmtd.lib (et peut-être d'autres libs aussi bien), puisqu'il a été compilled avec option de débogage.

Si vous ne l'aviez pas ignoré libcmt.lib ces symboles serait très probablement résolu par libcmt.lib et il n'y avait pas besoin de tirer dans des choses de LIBCMTD.LIB (même si il serait examiné pour résoudre d'autres symboles qui étaient encore unfullfilled)

Vous pouvez essayer de igmore LIBCMTD.LIB aussi. Si maintenant vous obtenez alors INDEFINI externals il était probebly pas une bonne idée d'ignorer libcmt.dll.

Autres conseils

De nombreux projets ignorent le libcmt.lib, car il est en conflit avec la version dynamique msvcrt.lib. Ignorer LIBCMT dans l'éditeur de liens faire le projet avec la compilation msvcrt.lib

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top