libstdc ++ - 6.dll не найден - PullRequest
42 голосов
/ 19 июня 2011

Я работал над проектом (конкретная игра), и я чувствую, что должен начать все сначала с разных библиотек. Поэтому при этом я переустанавливал Code :: Blocks и настраивал свои новые библиотеки и включает в себя.

Но сейчас у меня проблема с запуском u [моего нового проекта, чтобы проверить, все ли работы включены. Эта проблема: libstdc++-6.dll was not found. Сначала я задавался вопросом, могу ли я просто найти этот файл в Интернете, но его нигде не найти (или, по крайней мере, во многих местах, которые я искал ...) Вскоре после этого я попытался загрузить свой старый проект и снова возникла та же проблема (странно ... ._.) Я подумал, что это может быть мой компилятор, поэтому я использовал мой старый компилятор, и он сделал то же самое! В этот момент я отложил проблему на завтра (сегодня)

Итак, мой вопрос: если бы у кого-то еще была эта проблема, как бы вы ее решили?

Я использую Code :: Blocks с MinGW в качестве компилятора в 32-битной Windows Vista.

***** ****** EDIT 1012 *

Вот параметры сборки в моем проекте. Обратите внимание, что это настройки в Project, а не глобальный компилятор:

In (название проекта) -> Настройки компилятора-> Другие параметры:

(я использую // для разделения команд)

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

In (название проекта) -> Настройки компилятора -> # define:

WIN32//
_WINDOWS//

In (название проекта) -> Настройки компоновщика-> Другие опции компоновщика:

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

В библиотеках линкера-> ссылок у меня есть различные ссылки на файлы с расширением .a, в число этих файлов входят Bullet PHysics, Ogre3D и SFML

В каталогах поиска у меня есть ссылки на каталоги MinGW / bin, MinGW / lib и другие ссылки на другие библиотеки.

Мой компилятор - MinGW, компилятор GNU GCC для 32-битных Windows. и IDE - это кодовые блоки. Также обратите внимание, что в настройках Debug и Release в проекте ничего нет.

Большинство этих настроек также являются частями, которые я получил из учебника по настройке приложения Ogre3D , если это поможет.

Ответы [ 8 ]

86 голосов
/ 20 июня 2011

Если вы используете MingW для компиляции кода C ++ в Windows, вы можете добавить опции -static-libgcc и -static-libstdc++ для статического связывания стандартных библиотек C и C ++ и, таким образом, избавить от необходимости носить с собой отдельные копии те. Управление версиями библиотек является проблемой в Windows, поэтому я нашел этот подход самым быстрым и чистым решением для создания двоичных файлов Windows.

8 голосов
/ 19 июня 2011

Насколько я знаю, это C ++ Runtime Library.Таким образом, это зависит от компилятора, который вы используете для создания вашей программы (новая версия будет включать некоторые компоненты C ++ 0x, более старая версия, вероятно, не будет, например. Это зависит от компилятора и его версии).

Если вы используете MinGW, вам следует использовать libstdc ++ - 6.dll, который находится в папке этого компилятора. Папка MinGW / bin должно быть местом для поиска его на вашем компьютере.

Если вы скопируете этот файл в тот же каталог, что и ваш исполняемый файл, все должно быть в порядке.

5 голосов
/ 06 августа 2013

Простое удаление libstdc ++ - 6.dll.a \ libstdc ++. Dll.a из каталога mingw исправляет это.

Я пытался использовать флаг -static-libstdc ++, но у меня это не сработало. Я нашел решение в: http://ghc.haskell.org/trac/ghc/ticket/4468#

3 голосов
/ 13 февраля 2014

Эта ошибка также возникала, когда я компилировал с MinGW, используя gcc со следующими параметрами: -lstdc++ -lm, а не g ++

Я не заметил этих параметров и добавил: -static-libgcc -static-libstdc++

* 1006Я все еще получил сообщение об ошибке и, наконец, понял, что использую gcc, и изменил компилятор на g ++, удалил -stdc++ and -lm, и все связалось нормально.

(я использовал LINK.c, а не LINK.cpp ... используйте make -pn | less, чтобы увидеть, что все делает!)

Я не знаю, почему предыдущий автор использовал gccс -stdc ++.Я не вижу причин не использовать g ++, который будет автоматически связываться с stdc ++ ... и, насколько я знаю, предоставлять другие преимущества (в конце концов, это компилятор c ++).

1 голос
/ 09 апреля 2019

полезно для пользователей Windows, которые используют eclipse для c / c ++, но запускают файл * .exe и получают сообщение об ошибке: «отсутствует libstdc ++ 6.dll»

4 способа это решить

  1. Eclipse -> «Проект» -> «Свойства» -> «Сборка C / C ++» -> «Настройки» -> «Настройки инструмента» -> «MinGW C ++ Linker» -> «Разное» -> «Флажки линкера» (добавить к нему «-static»)

  2. Добавьте '{{путь, по которому был установлен MinGW}} / bin' к текущей переменной среды пользователя - "Путь" в Windows, затем перезагрузите затмение и, наконец, перекомпилируйте.

  3. Добавьте '{{путь, где был установлен MinGW}} / bin' к переменной среды Windows - "Path", затем перезагрузите затмение и, наконец, перекомпилируйте.

  4. Скопируйте файл "libstdc ++ - 6.dll" по пути, в котором работает файл * .exe, затем снова запустите. (это не очень хороший способ)

Примечание: файл "libstdc ++ - 6.dll" находится в папке '{{путь, куда был установлен ваш MinGW}} / bin'

1 голос
/ 12 января 2014

Я использую Eclipse под Fedora 20 с MinGW для кросс-компиляции.Используйте эти настройки, и программа больше не будет запрашивать libstdc ++ - 6.dll.

Тип проекта - Cross GCC

Cross Settings

  • Префикс: x86_64-w64-mingw32-
  • Путь: / usr / bin

Кросс-компилятор GCC

  • Команда: gcc

  • Все параметры: -I / usr / x86_64-w64-mingw32 / sys-root / mingw / include -O3 -Wall -c -fmessage-length =0

  • Включает: / usr / x86_64-w64-mingw32 / sys-root / mingw / include

Cross G ++ Compiler

  • Команда: g ++

  • Все параметры: -I / usr / x86_64-w64-mingw32 / sys-root / mingw / include-O3 -Wall -c -fmessage-length = 0

  • Включает: / usr / x86_64-w64-mingw32 / sys-root / mingw / include

Cross G ++ Linker

  • Команда: g ++ -static-libstdc ++ -static-libgcc

  • Все параметры: -L / usr / x86_64-w64-mingw32 / sys-root / mingw / lib -L / usr / x86_64-w64-mingw32 / sys-root / mingw / bin

  • Путь поиска в библиотеке (-L):

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

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

0 голосов
/ 30 июля 2018

Вам нужно только добавить свой "mingw-install-directory" / bin / к своему пути в переменных среды вашей системы ... вот и все !!

0 голосов
/ 18 октября 2016

Я поместил файл libstdc ++ - 6.dll в ту же папку, где генерируется исполняемый файл.

...