'LIBCMT conflits avec d'autres libs + externe non résolu symboles
J'ai un programme à l'aide d'OpenGL 3.2(+libs) et FreeType2. Puis un autre programme d'intensification et de OpenSSL. OpenGL côté est de vous assurer que le texte pourrait être rendue et le coup de pouce/openssl programme est de faire une connexion sécurisée/serveur de jeu.
Les deux programmes fonctionnent très bien par eux selfs.
Cependant l'ajout de Stimuler et d'OpenSSL pour le jeu(GL + freetype) projet de la cause de la panne de lien.
J'ai lié les suivantes libs ainsi qu'il comprend le dossier.
glimg.lib
glutil.lib
glfw.lib
opengl32.lib
freetype.lib
glew32.lib
user32.lib
libeay32.lib
ssleay32.lib
L'éditeur de liens d'erreur est.
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>libeay32.lib(cryptlib.obj) : error LNK2001: unresolved external symbol __imp__DeregisterEventSource@4
1>libeay32.lib(cryptlib.obj) : error LNK2001: unresolved external symbol __imp__ReportEventA@36
1>libeay32.lib(cryptlib.obj) : error LNK2001: unresolved external symbol __imp__RegisterEventSourceA@8
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__DeleteDC@4
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__DeleteObject@4
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__GetBitmapBits@12
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__BitBlt@36
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__GetObjectA@12
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__SelectObject@8
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__CreateCompatibleBitmap@12
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__GetDeviceCaps@8
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__CreateCompatibleDC@4
1>libeay32.lib(rand_win.obj) : error LNK2001: unresolved external symbol __imp__CreateDCA@16
1>.\BasicTexture.exe : fatal error LNK1120: 13 unresolved externals
De la Bibliothèque d'exécution est fixé à la DLL multithread (/MD)
Je n'ai aucune idée de quoi faire, je voudrais vraiment l'apprécier l'aide.
Advapi32.lib
et Gdi32.lib
). Le premier avertissement indique que votre projet et de la bibliothèques de vous lier à incompatibles linker les paramètres à l'égard de la CRT. En dehors de cela, il semble que vous ne sont pas de la compilation d'une version Unicode. Est-il une raison pour que?Merci Tim. Pas de certitude sur l'unicode des trucs que je viens d'utiliser premake4 de faire le vs solition et changé quoi que ce soit dont j'avais besoin(j'ai sélectionné oui pour unicode). Aimeriez-vous le fait qu'une réponse parce que vous avez fixée! la compilation a réussi. MERCI BEAUCOUP! 🙂
OriginalL'auteur Andrew | 2013-01-03
Vous devez vous connecter pour publier un commentaire.
Externe non résolu des messages d'erreur se produit lorsque le compilateur génère du code de référencement externe définie objets ou des fonctions et l'éditeur de liens ne parvient pas à trouver ces. Pour générer du code en invoquant un appel de fonction, le compilateur ne nécessite qu'une seule déclaration:
C'est assez d'informations pour produire un
call
d'instruction (à l'exception de l'adresse cible). Leextern
mot-clé informe le compilateur que la mise en œuvre est définie par ailleurs. Par conséquent, il ne peut pas savoir à l'adresse cible qui doit être rempli au plus tard. Lorsque le compilateur est fait, il est l'éditeur de liens de travail pour connecter les pièces ensemble. Il utilise les informations recueillies à partir de l'importation des bibliothèques de regarder les décalages.Appels d'API de Windows sont facilement repérables dans le journal des erreurs. Ils ont un
__imp__
préfixe et parfois unA
ouW
postfix suivie par@<n>
où <n> indique le nombre d'octets requis pour les arguments. Dans le cas d'un appel d'API de Windows, vous pouvez ensuite rechercher la fonction dans le MSDN (comme DeregisterEventSource). Vers le bas sont les Exigences où vous pouvez trouver de l'importation de la bibliothèque nom.Le conflit d'avertissement indique que tous les modules utilisent la même bibliothèque d'exécution. Même si c'est juste un avertissement, c'est un problème sérieux et doit être résolu. Vous obtenez ce message d'avertissement si vous mélangez
/MD
et/MT
commutateurs du compilateur, mais aussi, si vous mélangez release et debug des bibliothèques d'exécution (comme/MD
et/MDd
). Pour diagnostiquer ce message, vous pouvez utiliser le/VERBOSE:LIB
commutateur liens pour déterminer les bibliothèques de l'éditeur de liens est à la recherche. Des informations supplémentaires sur cet avertissement peut être trouvé à cette MSDN lien.OriginalL'auteur IInspectable
Vous essayez de compiler avec
/MD
, ce qui est probablement le bon choix, mais un peu de code (probablement l'une des bibliothèques) a été construit avec/MT
, et vous ne pouvez pas avoir les deux dans le même programme. Vous avez besoin de savoir qui de la bibliothèque a été construite avec/MT
et le reconstruire avec/MD
./MT
Merci pour la réponse, Le problème a été résolu par Tim dans le commentaire sur la question d'une heure environ. Je voudrais lui donner la réponse à accepter. Cependant +1. Parce que je n'ai vérifier que tout était en MD filetée avant de poster la question.
OriginalL'auteur Adrian McCarthy