2017-01-20 2 views
2

Ich versuche SDL für die Verwendung mit Eclipse zu bauen. Ich versuche, diese Linker-Fehler zu entfernen:Wie löse ich Linker Fehler mingw32/bin/ld.exe: kann -lSDL nicht finden

Anfang Compilation

21:15:53 **** Incremental Build of configuration Debug for project CMD **** 
Info: Internal Builder is used for build 
g++ "-IC:\\MinGW\\include\\SDL2" -O0 -g3 -Wall -c -fmessage-length=0 -o "src\\CMD.o" "..\\src\\CMD.cpp" 
g++ -o CMD.exe "src\\CMD.o" -lmingw32 -lSDL -lSDL2main -lSDL2 

ERROR (e):

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL collect2.exe: error: ld returned 1 exit status 21:15:54 Build Finished (took 1s.36ms)

Die most pertinent SO archive source I researched schien nicht eine umsetzbare Lösung für mein Problem zu haben, obwohl es hatte genau das gleiche Problem/den gleichen Fehler: Titel - , der dieselbe Fehlermeldung erzeugt:

c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/ld.exe: cannot find -lSDL.

Wenn Sie auf die "Lösung" der Autoren für den gleichen Fehler wie mir klicken, ist mir nicht klar, wie er es gelöst hat.

Irgendwelche Hilfe?

+0

Wo haben Sie Ihre 'libSDL2.a' und/oder' libSDL2.dll.a'? Sie haben den Pfad für Header übergeben (mit '-I' Compiler-Flag), aber nicht den Pfad zum Bibliotheksverzeichnis (' -L-Flag während der Verbindungsphase). – keltar

+0

libSDL2.a und libSDL2.dll.a sind beide gefunden c:/MinGW/lib – user121903

+1

Ok, mein schlechtes Lesen unvorsichtig, warum in der Welt verbinden Sie sowohl "SDL" und "SDL2"? Sie sind nicht kompatibel. – keltar

Antwort

0

Problem gelöst, SDL2 genial. Ok:

c:/mingw/bin/../ lib/gcc/mingw32/4.7.0 /../../../../ mingw32/bin/ld.exe: kann -lSDL nicht finden .

Neuinstallation von SDL2 Vermeidung von binären Konflikt zwischen SDL-Dateien und SDL2-Dateien als Keltar erwähnt gelöst das unmittelbare Problem, und das Problem ohne Fehler! Reparieren, was in den Klammern unmasked neues Problem war: Absturz. Ich entkleidete das Programm bis auf die Knochen und schlussfolgerte, dass der Absturz außerhalb des Codes stattfand, da es auch ohne Code vorkam.

Um das neue Problem zu lösen, müsste die SDL2-Verteilungsdatei (die nach MinGW kopierte) gehen und die SDL2.dll daraus kopieren [DLL from distributable] [1] --- indem Sie die Datei über Ihr Debug ziehen und/oder Ordner freigeben, in denen die .exe-Datei lebt. (. exe + dll -> richtig?) . Build/Run das Programm sollte es funktionieren! Sie sollten eine Willkommensnachricht sehen! https://www.caveofprogramming.com/c-for-complete-beginners/setting-up-sdl-windows.html

Verwandte Themen