web-dev-qa-db-fra.com

libstdc ++ - 6.dll introuvable

J'ai travaillé sur un projet (un jeu pour être précis) et je pense que je devrais recommencer avec différentes bibliothèques. Donc, en faisant cela, j'ai réinstallé Code :: Blocks et configuré mes nouvelles bibliothèques et inclus.

Mais à partir de maintenant, j'ai un problème à démarrer u [mon nouveau projet pour tester si tout le travail inclut. Ce problème est: libstdc++-6.dll was not found. Au début, je me demandais si je pouvais simplement trouver ce fichier en ligne, mais il est introuvable (ou du moins les nombreux endroits que j'ai recherchés ...) Peu de temps après, j'ai essayé de charger mon ancien projet, et le même problème est arrivé à nouveau (bizarre ... ._.) Je pensais que c'était peut-être mon compilateur, alors j'ai utilisé mon ancien compilateur et il a fait la même chose! En ce moment, j'ai repoussé le problème pour demain (qui est aujourd'hui)

Ma question est donc la suivante: si quelqu'un d'autre avait ce problème, comment le résoudriez-vous?

Im utilisant Code :: Blocks avec MinGW comme compilateur sur Windows Vista 32 bits.

*****MODIFIER*****

Voici les options de construction de mon projet. Notez que ce sont les paramètres du projet, pas le compilateur global:

Dans (nom du projet) -> Paramètres du compilateur -> Options Otehr:

(J'utilise // pour séparer les commandes)

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

Dans (nom du projet) -> Paramètres du compilateur -> # définir:

WIN32//
_WINDOWS//

Dans (nom du projet) -> Paramètres de l'éditeur de liens -> Autres options de l'éditeur de liens:

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

Dans l'éditeur de liens-> bibliothèques de liens, j'ai divers liens vers des fichiers avec un .a extension, ces fichiers incluent Bullet PHysics, Ogre3D et SFML

Dans les répertoires de recherche, j'ai des liens vers les répertoires MinGW/bin et MinGW/lib, ainsi que d'autres liens vers différentes bibliothèques.

Mon compilateur est MinGW, un compilateur GNU GCC pour Windows 32 bits et le IDE est des blocs de code. Notez également que dans les paramètres de débogage et de publication du projet, Il n'y a rien.

La plupart de ces paramètres sont également des éléments que j'ai obtenus du tutoriel de configuration de l'application Ogre3D si cela peut vous être utile.

42
Molmasepic

Si vous utilisez MingW pour compiler du code C++ sous Windows, vous souhaiterez peut-être ajouter les options -static-libgcc et -static-libstdc++ pour lier statiquement les bibliothèques standard C et C++ et ainsi supprimer la nécessité de transporter des copies séparées de celles-ci. La gestion des versions des bibliothèques est une difficulté dans Windows, j'ai donc trouvé cette approche la solution la plus rapide et la plus propre pour créer des binaires Windows.

88
Kerrek SB

À ma connaissance, il s'agit de la bibliothèque d'exécution C++. Cela dépend donc du compilateur que vous utilisez pour créer votre programme (une nouvelle version inclura des éléments C++ 0x, une ancienne version ne le sera probablement pas par exemple. Cela dépend du compilateur et de sa version).

Si vous utilisez MinGW, vous devez utiliser le libstdc ++ - 6.dll trouvé dans le dossier de ce compilateur. dossier MinGW/bin devrait être l'endroit idéal pour le rechercher sur votre ordinateur.

Si vous copiez ce fichier dans le même répertoire que votre exécutable, cela devrait être OK.

8
Valkea

Il suffit de supprimer libstdc ++ - 6.dll.a\libstdc ++. Dll.a du répertoire mingw pour résoudre ce problème.

J'ai essayé d'utiliser l'indicateur -static-libstdc ++ mais cela n'a pas fonctionné pour moi. J'ai trouvé la solution dans: http://ghc.haskell.org/trac/ghc/ticket/4468#

5
Tamir

Cette erreur s'est également produite lorsque j'ai compilé avec MinGW en utilisant gcc avec les options suivantes: -lstdc++ -lm, plutôt que g ++

Je n'ai pas remarqué ces options et j'ai ajouté: -static-libgcc -static-libstdc++

J'ai toujours eu l'erreur et j'ai finalement réalisé que j'utilisais gcc, et j'ai changé le compilateur en g ++ et supprimé -stdc++ and -lm, et tout est bien lié.

(J'utilisais LINK.c plutôt que LINK.cpp ... utilisez make -pn | less pour voir ce que tout fait!)

Je ne sais pas pourquoi l'auteur précédent utilisait gcc avec -stdc ++. Je ne vois aucune raison de ne pas utiliser g ++ qui sera lié automatiquement à stdc ++ ... et pour autant que je sache, fournir d'autres avantages (c'est le compilateur c ++ après tout).

3
nckturner

utile aux utilisateurs de Windows qui utilisent Eclipse pour c/c ++ mais exécutent le fichier * .exe et obtiennent une erreur: "libstdc ++ 6.dll manquante"

4 façons de le résoudre

  1. Eclipse -> "Projet" -> "Propriétés" -> "C/C++ Build" -> "Paramètres" -> "Paramètres d'outil" -> "MinGW C++ Linker" -> "Misscellaneous" -> "Linker flags" (ajouter '-statique')

  2. Ajoutez '{{le chemin où votre MinGW a été installé}}/bin' à la variable d'environnement utilisateur actuelle - "Path" dans Windows, puis redémarrez Eclipse, et enfin recompilez.

  3. Ajoutez '{{le chemin où votre MinGW a été installé}}/bin' à la variable d'environnement Windows - "Path", puis redémarrez Eclipse, et enfin recompilez.

  4. Copiez le fichier "libstdc ++ - 6.dll" dans le chemin où le fichier * .exe est exécuté, puis réexécutez. (ce n'est pas un bon moyen)

Remarque: le fichier "libstdc ++ - 6.dll" se trouve dans le dossier '{{le chemin où votre MinGW a été installé}}/bin'

2
user11335559

J'utilise Eclipse sous Fedora 20 avec MinGW pour la compilation croisée. Utilisez ces paramètres et le programme ne demandera plus libstdc ++ - 6.dll.

Type de projet - Cross GCC

Paramètres croisés

  • Préfixe: x86_64-w64-mingw32-
  • Chemin:/usr/bin

Cross GCC Compiler

  • Commande: gcc

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

  • Comprend:/usr/x86_64-w64-mingw32/sys-root/mingw/include

Compilateur Cross G ++

  • Commande: g ++

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

  • Comprend:/usr/x86_64-w64-mingw32/sys-root/mingw/include

Cross G ++ Linker

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

  • Toutes les options: -L/usr/x86_64-w64-mingw32/sys-root/mingw/lib -L/usr/x86_64-w64-mingw32/sys-root/mingw/bin

  • Chemin de recherche de bibliothèque (-L):

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

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

1
Zurab Kargareteli

J'ai placé le fichier libstdc ++ - 6.dll dans le même dossier où le fichier exe est généré.

0
Rudraksha

Il vous suffit d'ajouter votre "mingw-install-directory"/bin/à votre chemin d'accès dans vos variables d'environnement système ... c'est tout !!

0
Dan Ortega