wake-up-neo.com

libstdc ++ - 6.dll nicht gefunden

Ich habe an einem Projekt gearbeitet (ein Spiel, um genau zu sein) und ich bin der Meinung, dass ich mit verschiedenen Bibliotheken von vorne anfangen sollte. Also habe ich Code :: Blocks neu installiert und meine neuen Bibliotheken und Includes eingerichtet.

Aber ab jetzt habe ich ein Problem beim Starten meines neuen Projekts, um zu testen, ob alle Funktionen funktionieren. Dieses Problem ist: libstdc++-6.dll was not found. Zuerst habe ich mich gefragt, ob ich diese Datei nur online finden könnte, aber sie ist nirgends zu finden (oder zumindest an den vielen Stellen, an denen ich gesucht habe ...). Kurz danach habe ich versucht, mein altes Projekt zu laden, und das gleiche Problem wieder passiert (komisch ... ._.) Ich dachte, es ist vielleicht mein Compiler, also habe ich meinen älteren Compiler verwendet und es hat das gleiche getan! In diesem Moment hielt ich das Problem für morgen (was heute ist)

Meine Frage lautet also: Wenn jemand anderes dieses Problem hätte, wie würden Sie es lösen?

Ich benutze Code :: Blocks mit MinGW als Compiler unter Windows Vista 32 Bit.

*****BEARBEITEN*****

Hier sind die Build-Optionen in meinem Projekt. Beachten Sie, dass dies die Einstellungen im Projekt sind, nicht der globale Compiler:

In (Projektname) -> Compiler-Einstellungen -> Otehr-Optionen:

(Ich benutze //, um die Befehle zu trennen)

-mthreads//
-fmessage-length=0//
-fexceptions//
-fident//

In (Projektname) -> Compilereinstellungen -> # definieren:

WIN32//
_WINDOWS//

In (Projektname) -> Linkereinstellungen-> Andere Linkoptionen:

-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//

In Linker-> Link-Bibliotheken habe ich verschiedene Links zu Dateien mit einem .a Erweiterung, diese Dateien enthalten Bullet PHysics, Ogre3D und SFML

In den Suchverzeichnissen habe ich Links zu den Verzeichnissen MinGW/bin und MinGW/lib, zusammen mit anderen Links zu verschiedenen Bibliotheken.

Mein Compiler ist MinGW, ein GNU= GCC-Compiler für Windows 32-Bit. Und der IDE= ist Codeblock. Beachten Sie auch, dass in den Debug- und Release-Einstellungen des Projekts Es gibt nichts.

Die meisten dieser Einstellungen sind auch Teile, die ich aus dem Ogre3D-Anwendungs-Setup-Tutorial erhalten habe, wenn dies hilfreich ist.

42
Molmasepic

Wenn Sie MingW verwenden, um C++ - Code unter Windows zu kompilieren, können Sie die Optionen -static-libgcc und -static-libstdc++, um die C- und C++ - Standardbibliotheken statisch zu verknüpfen und damit die Notwendigkeit zu beseitigen, separate Kopien davon mitzuführen. Die Versionsverwaltung von Bibliotheken ist ein Problem in Windows. Daher habe ich festgestellt, dass dieser Ansatz die schnellste und sauberste Lösung zum Erstellen von Windows-Binärdateien ist.

88
Kerrek SB

Soweit ich weiß, ist dies die C++ Runtime Library. Es hängt also vom Compiler ab, den Sie zum Erstellen Ihres Programms verwenden. (Eine neue Version enthält einige C++ 0x-Dateien, eine ältere Version wird dies wahrscheinlich nicht tun. Es hängt vom Compiler und seiner Version ab.).

Wenn Sie MinGW verwenden, sollten Sie die libstdc ++ - 6.dll verwenden, die sich im Ordner dieses Compilers befindet. MinGW/bin-Ordner sollte der Ort sein, an dem Sie auf Ihrem Computer danach suchen können.

Wenn Sie diese Datei in dasselbe Verzeichnis wie Ihre ausführbare Datei kopieren, sollte dies in Ordnung sein.

8
Valkea

Durch einfaches Entfernen von libstdc ++ - 6.dll.a\libstdc ++. Dll.a aus dem Verzeichnis mingw wird dies behoben.

Ich habe versucht, das Flag -static-libstdc ++ zu verwenden, aber das hat bei mir nicht funktioniert. Ich fand die Lösung in: http://ghc.haskell.org/trac/ghc/ticket/4468#

5
Tamir

Dieser Fehler trat auch auf, als ich mit MinGW unter Verwendung von gcc mit den folgenden Optionen kompilierte: -lstdc++ -lm, anstatt g ++

Ich habe diese Optionen nicht bemerkt und hinzugefügt: -static-libgcc -static-libstdc++

Ich bekam immer noch den Fehler und bemerkte schließlich, dass ich gcc verwendete und änderte den Compiler in g ++ und entfernte -stdc++ and -lm und alles in bester Verbindung.

(Ich habe LINK.c anstatt LINK.cpp verwendet ... benutze make -pn | less um zu sehen was alles macht!)

Ich weiß nicht, warum der vorherige Autor gcc mit -stdc ++ verwendete. Ich sehe keinen Grund, g ++ nicht zu verwenden, das sich automatisch mit stdc ++ verbindet ... und, soweit ich weiß, andere Vorteile bietet (es ist schließlich der c ++ - Compiler).

3
nckturner

nützlich für Windows-Benutzer, die Eclipse für c/c ++ verwenden, aber die * .exe-Datei ausführen und eine Fehlermeldung erhalten: "missing libstdc ++ 6.dll"

4 Möglichkeiten, um es zu lösen

  1. Eclipse -> "Project" -> "Properties" -> "C/C++ Build" -> "Settings" -> "Tool Settings" -> "MinGW C++ Linker" -> "Misscellaneous" -> "Linker flags" (add '-statisch' dazu)

  2. Fügen Sie '{{der Pfad, in dem Ihr MinGW installiert wurde}}/bin' zur aktuellen Benutzerumgebungsvariablen hinzu - "Pfad" in Windows, starten Sie Eclipse neu und kompilieren Sie es schließlich neu.

  3. Fügen Sie der Windows-Umgebungsvariablen '{{der Pfad, in dem Ihr MinGW installiert wurde}}/bin' - "Pfad" hinzu, starten Sie Eclipse neu und kompilieren Sie es schließlich erneut.

  4. Kopieren Sie die Datei "libstdc ++ - 6.dll" in den Pfad, in dem die * .exe-Datei ausgeführt wird, und führen Sie sie erneut aus. (Dies ist kein guter Weg)

Hinweis: Die Datei "libstdc ++ - 6.dll" befindet sich im Ordner "{{der Pfad, in dem Ihr MinGW installiert wurde}}/bin".

2
user11335559

Ich benutze Eclipse unter Fedora 20 mit MinGW zum Cross-Kompilieren. Verwenden Sie diese Einstellungen und das Programm fragt nicht mehr nach libstdc ++ - 6.dll.

Projekttyp - Cross GCC

Cross Settings

  • Präfix: x86_64-w64-mingw32-
  • Pfad:/usr/bin

Cross GCC Compiler

  • Befehl: gcc

  • Alle Optionen: -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -O3 -Wall -c -fmessage-length = 0

  • Enthält:/usr/x86_64-w64-mingw32/sys-root/mingw/include

Cross G ++ Compiler

  • Befehl: g ++

  • Alle Optionen: -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -O3 -Wall -c -fmessage-length = 0

  • Enthält:/usr/x86_64-w64-mingw32/sys-root/mingw/include

Cross G ++ Linker

  • Befehl: g ++ -static-libstdc ++ -static-libgcc

  • Alle Optionen: -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -L/usr/x86_64-w64-mingw32/sys-root/mingw/bin

  • Bibliothekssuchpfad (-L):

    / usr/x86_64-w64-mingw32/sys-root/mingw/lib

    / usr/x86_64-w64-mingw32/sys-root/mingw/bin

1

Ich habe die libstdc ++ - 6.dll-Datei in demselben Ordner abgelegt, in dem die exe-Datei generiert wird.

0
Rudraksha

Sie müssen nur Ihr "mingw-install-directory"/bin/zu Ihrem Pfad in Ihren Systemumgebungsvariablen hinzufügen ... das war's !!

0
Dan Ortega