Probleme SDL

Signaler
Messages postés
5
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
7 février 2010
-
Messages postés
14
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
29 novembre 2010
-
bonjour,

depuis que je commence la SDL, j'ai un probleme. Au lancement de mon build, j'ai ceci:

Il est dit ceci dans le log:

Journal de génération

 ,  , Générer démarrée : Projet : sdl, Configuration : Debug|Win32

Lignes de commande

 ,  , Création du fichier temporaire "d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000341372212.rsp" avec pour contenu
[
/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Gm /EHsc /RTC1 /MD /Fo"Debug\\" /Fd"Debug\vc80.pdb" /W3 /c /ZI /TC ".\main.c"
]
Création de la ligne de commande "cl.exe @"d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000341372212.rsp" /nologo /errorReport:prompt"
Création du fichier temporaire "d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000351372212.rsp" avec pour contenu
[
/OUT:"D:\tempo\Visual Studio 2005\Projects\sdl\Debug\sdl.exe" /INCREMENTAL /MANIFEST /MANIFESTFILE:"Debug\sdl.exe.intermediate.manifest" /DEBUG /PDB:"d:\tempo\visual studio 2005\projects\sdl\debug\sdl.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 SDL.lib SDLmain.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib

".\debug\main.obj"

".\Debug\sdl.exe.embed.manifest.res"
]
Création de la ligne de commande "link.exe @"d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000351372212.rsp" /NOLOGO /ERRORREPORT:PROMPT"
Création du fichier temporaire "d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000361372212.rsp" avec pour contenu
[
/out:".\debug\sdl.exe.embed.manifest" /notify_update /manifest

".\debug\sdl.exe.intermediate.manifest"
]
Création de la ligne de commande "mt.exe @"d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP0000361372212.rsp" /nologo"
Création du fichier temporaire "d:\tempo\Visual Studio 2005\Projects\sdl\Debug\BAT0000371372212.bat" avec pour contenu
[
@echo La ressource de manifeste a été mise à jour pour la dernière fois à %TIME% le %DATE% > ".\debug\mt.dep"
]
Création de la ligne de commande """d:\tempo\Visual Studio 2005\Projects\sdl\Debug\BAT0000371372212.bat"""

Fenêtre Sortie

 ,  , Compilation en cours...
main.c
Édition des liens en cours...
Incorporation du manifeste en cours...

Résultats

 ,  , Le journal de génération a été enregistré à l'emplacement "file://d:\tempo\Visual Studio 2005\Projects\sdl\Debug\BuildLog.htm"
sdl - 0 erreur(s), 0 avertissement(s)

-----------

Je précise que j'ai bien installé la SDK, n'y a t'il rien qui vous frappe ?

Merci d'avance.

(PS: le fichier ne plante que si j'y introduis des élements appartenant à la SDL)

8 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

Mouarf. J'adore cette erreur.
MS VC2005 n'a pas fait le manifest de votre application correctement. Bonne journée.

Va dans les options de ton projet, et vire l'incorporation du manifest.
Projet, configuration de Nomprojet... quelques chose comme ça, puis tu cliques dans l'arborescence à droite à la recherche de l'option en question.
Messages postés
5
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
7 février 2010

cool ! voila une chose en moins et merci de ton aide.

Cependant, il me reste des erreurs LNK, voici ce qui reste:

Journal de génération

 ,  , Générer démarrée : Projet : sdl, Configuration : Debug|Win32

Lignes de commande

 ,  , Création du fichier temporaire "d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP00000A32082184.rsp" avec pour contenu
[
/OUT:"D:\tempo\Visual Studio 2005\Projects\sdl\Debug\sdl.exe" /INCREMENTAL /MANIFEST:NO /DEBUG /PDB:
"d:\tempo\Visual Studio 2005\Projects\sdl\Debug\sdl.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 SDL.lib SDLmain.lib kernel32.lib User32.Lib Gdi32.Lib WinSpool.Lib ComDlg32.Lib AdvAPI32.Lib Shell32.Lib Ole32.Lib OleAut32.Lib Uuid.Lib

".\Debug\main.obj"
]
Création de la ligne de commande "link.exe @"d:\tempo\Visual Studio 2005\Projects\sdl\Debug\RSP00000A32082184.rsp" /NOLOGO /ERRORREPORT:PROMPT"

Fenêtre Sortie

 ,  , Édition des liens en cours...
main.obj : error LNK2019: symbole externe non résolu _IMG_Load référencé dans la fonction _SDL_main
D:\tempo\Visual Studio 2005\Projects\sdl\Debug\sdl.exe : fatal error LNK1120: 1 externes non résolus

Résultats

 ,  , Le journal de génération a été enregistré à l'emplacement "file://d:\tempo\Visual Studio 2005\Projects\sdl\Debug\BuildLog.htm"
sdl - 2 erreur(s), 0 avertissement(s)

alors la, je seche totalement ...
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
On voit bien l'erreur :

Édition des liens en cours...
main.obj : error LNK2019: symbole externe non résolu _IMG_Load référencé dans la fonction _SDL_main
D:\tempo\Visual Studio 2005\Projects\sdl\Debug\sdl.exe : fatal error LNK1120: 1 externes non résolus

C'est une grande classique.

Il te manque probablement une .lib en entrée du lieur, peut être SDL_Image.lib.
Messages postés
5
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
7 février 2010

merci rt15 !! Tout ca se precise ...

après ca, j'ai eu droit à un msvcr80.dll manquant, j'ai donc copié celui de la SDK et maintenant, j'ai droit à un nouveau truc:

j'ai choppé deux autres dll portant ce nom de tailles differentes mais à chaque fois, j'ai un message d'erreur. Suis-je destiné à galerer avec la SDL ??
Messages postés
5
Date d'inscription
dimanche 5 février 2006
Statut
Membre
Dernière intervention
7 février 2010

bon, ben definitvement résolu:

j'etais en debug, il fallait parametrer et me mettre en release, avis aux futurs nuls dans la même situation que moi :D
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
lol
Tu nous passe vraiment en revue toutes les erreurs à la c** !

Si je ne m'abuse MSVCR, ça veut dire M$ Visual C Runtime. Cette lib, souvent appelée CRT regroupe toutes les fonctions standards du C.

Généralement on utilise sa version statique et pas sa version dynamique, comme tu es en train de le faire, de manière à se passer de la dll, et de diminuer les problèmes de version et de conflits.

Cette fois, j'ai MSVC2005 sur moi !
Projet->Propriété de MonProjet->Propriété de configuration->C/C++->Génération de code->Bibliothèque Runtime.

Là tu mets Multithread pour ta release et Débogage Multithread pour ta debug.

Mais cela ne corrigerat peut être pas le problème : tu risque une erreur au link (Si elle est pas dans la dll, peut de chance qu'elle soit dans la static).

Va peut être falloire que tu utilise une autre CRT, mais là ça devient franchement compliqué. Une autre CRT venant du libre entrerait en conflit avec la première de M£. Il faudrait désactivé la crt dans les entrées du lien (Option Toutes biblio par défaut ignorée). La lib à ignorée s'appel main il me semble.

Mais j'anticipe. Commence par passer la CRT en lib statique.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Post croisé.
Cool que tu t'en sois sortie !
Messages postés
14
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
29 novembre 2010

Bonjour. J'avais le même problème que Franckq.


Après moultes recherches sur internet, j'ai modifié les options de mon projet, mis la bibliothèque runtime sur "multithread" et fait ignorer la "msvcrt.lib" dans Editeur de liens-->entrée
mon projet est en release
J'obtiens une erreur du linker :


SDLmain.lib(SDL_win32_main.obj) : error LNK2001: symbole externe non résolu __imp__strrchr




Je précise qu' en n'ignorant pas "msvcrt.lib", le linker produit encore plus d'erreurs :


msvcrt.lib(MSVCR80.dll) : error LNK2005: _isspace déjà défini(e) dans LIBCMT.lib(_ctype.obj)


msvcrt.lib(MSVCR80.dll) : error LNK2005: _fprintf déjà défini(e) dans LIBCMT.lib(fprintf.obj)


msvcrt.lib(MSVCR80.dll) : error LNK2005: ___iob_func déjà défini(e) dans LIBCMT.lib(_file.obj)


msvcrt.lib(MSVCR80.dll) : error LNK2005: _fclose déjà défini(e) dans LIBCMT.lib(fclose.obj)


msvcrt.lib(MSVCR80.dll) : error LNK2005: _exit déjà défini(e) dans LIBCMT.lib(crt0dat.obj)


mais pas de symbole externe non résolu
Quelqu'un peut-il m'aider?