LibstdС++ - 6.dll не найден
Я работаю над проектом (для конкретной игры), и я чувствую, что должен начать с разных библиотек. Поэтому при этом я переустановил Code:: Blocks и установил свои новые библиотеки и включил.
Но на данный момент у меня проблема с запуском u [мой новый проект, чтобы проверить, работают ли все из включений. Эта проблема: libstdc++-6.dll was not found.
Сначала я задавался вопросом, могу ли я просто найти этот файл в Интернете, но его нигде не найти (или, по крайней мере, много мест, которые я искал...) Вскоре после этого я попытался загрузить мой старый проект, и та же проблема снова возникла (wierd...._.) Я думал о своем, возможно, компиляторе, поэтому использовал свой старый компилятор, и он сделал то же самое! В этот момент я поставил проблему на завтра (что сегодня)
Итак, мой вопрос: если кто-то еще имел эту проблему, как бы вы ее разрешили?
Я использую Code:: Blocks with MinGW как компилятор в 32-разрядной версии Windows Vista.
***** ***** EDIT
Вот варианты сборки в моем проекте. Обратите внимание, что это настройки в проекте, а не глобальный компилятор:
В (название проекта) → Настройки компилятора- > Параметры Otehr:
(я использую //
для разделения команд)
-mthreads//
-fmessage-length=0//
-fexceptions//
-fident//
В (название проекта) → Настройки компилятора → # define:
WIN32//
_WINDOWS//
В (название проекта) → Настройки компоновщика- > Другие параметры компоновщика:
-static-libstdc++//
-static-libgcc//
-Wl,--enable-auto-image-base//
-Wl,--add-stdcall-alias//
-Wl,--enable-auto-import//
В библиотеках linker- > link у меня есть различные ссылки на файлы с расширением .a
, эти файлы включают Bullet PHysics, Ogre3D и SFML
В каталогах поиска у меня есть ссылки на MinGW/bin и каталоги MinGW/lib, а также другие ссылки на разные библиотеки.
Мой компилятор - MinGW, компилятор GNU GCC для Windows 32 бит. а IDE - это кодовые блоки. Также обратите внимание, что в настройках Debug и Release проекта нет ничего.
Большинство этих настроек также являются частями, которые я получил из Ogre3D Application setup, если это поможет.
Ответы
Ответ 1
Если вы используете MingW для компиляции кода на С++ в Windows, вы можете добавить параметры -static-libgcc
и -static-libstdc++
, чтобы связать стандартные библиотеки C и С++ статически и, следовательно, удалить необходимость переносить любые отдельные копии те. Управление версиями библиотек - это боль в Windows, поэтому я нашел этот подход самым быстрым и чистым решением для создания двоичных файлов Windows.
Ответ 2
Насколько я знаю, это С++ Runtime Library. Так что это зависит от компилятора, который вы используете для создания вашей программы (новая версия будет включать в себя некоторые вещи С++ 0x, более старая версия, вероятно, не будет, например, зависит от компилятора и его версии).
Если вы используете MinGW, тогда вы должны использовать libstdС++ - 6.dll, который находится в папке этого компилятора. Папка MinGW/bin должна быть местом для поиска на вашем компьютере.
Если вы скопируете этот файл в том же каталоге, что и ваш исполняемый файл, он должен быть в порядке.
Ответ 3
Просто удалите libstdС++ - 6.dll.a\libstdС++. dll.a из каталога mingw исправляет это.
Я попытался использовать флаг -static-libstdС++, но это не сработало для меня.
Я нашел решение в: http://ghc.haskell.org/trac/ghc/ticket/4468#
Ответ 4
Эта ошибка также возникла, когда я скомпилировал MinGW с помощью gcc со следующими параметрами:
-lstdc++ -lm
, а не g++
Я не заметил этих опций и добавил: -static-libgcc -static-libstdc++
У меня все еще есть ошибка, и, наконец, я понял, что использую gcc, и сменил компилятор на g++ и удалил -stdc++ and -lm
, и все было связано отлично.
(Я использовал LINK.c вместо LINK.cpp... использую make -pn | less
, чтобы видеть, что все делает!)
Я не знаю, почему предыдущий автор использовал gcc с -stdС++. Я не вижу причин не использовать g++, который автоматически связывается с stdС++... и, насколько я знаю, предоставляет другие преимущества (это компилятор С++ в конце концов).
Ответ 5
Я поместил файл libstdС++ - 6.dll в ту же папку, где создан exe файл.
Ответ 6
Вам нужно только добавить свой "mingw-install-directory"/bin/к вашему пути в переменные среды вашей системы... это!
Ответ 7
Я использую Eclipse под Fedora 20 с MinGW для кросс-компиляции.
Используйте эти настройки, и программа больше не будет запрашивать libstdС++ - 6.dll.
Тип проекта - Cross GCC
Перекрестные настройки
- Префикс: x86_64-w64-mingw32-
- Путь:/usr/bin
Компилятор Cross GCC
Компилятор Cross g++
Компонент Cross g++
-
Команда: g++ -static-libstdС++ -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-корень/MinGW/Библиотека
/USR/x86_64-w64-mingw32/SYS-корень/MinGW/бен
Ответ 8
полезно для пользователей Windows, которые используют eclipse для c/c++, но запускают файл *.exe и получают ошибку: "отсутствует libstd c++ 6.dll"
4 способа решить это
-
Eclipse → "Проект" → "Свойства" → "C/c++ Build" → "Настройки" → "Настройки инструмента" → "MinGW c++ Linker" → "Разное" → "Линкер" флаги "(добавить '-static' к нему)
-
Добавьте '{{путь, где был установлен MinGW}}/bin' к текущей переменной среды пользователя - "Путь" в Windows, затем перезагрузите затмение и, наконец, перекомпилируйте.
-
Добавьте '{{путь, по которому был установлен MinGW}}/bin' в переменную среды Windows - "Path", затем перезагрузите eclipse и, наконец, перекомпилируйте.
-
Скопируйте файл "libstd c++ -6.dll" по пути, в котором работает файл *.exe, затем снова запустите. (это не очень хороший способ)
Примечание: файл "libstd c++ -6.dll" находится в папке '{{путь, куда был установлен ваш MinGW}}/bin'