Почему я получаю ошибку точки входа в процедуру для этого простого кода C ++?

0

Я пишу SFML-игру, и когда я пытаюсь запустить код, это ошибка, которую я получаю:

Точка входа процедуры _gxx_personality_v0 не может быть расположена в динамической библиотеке ссылок libstdc++-6.dll

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

Другой ответ сказал, чтобы поставить каталог MinGW/bin перед любым другим каталогом в PATH среды PATH, что я и сделал, и он все еще не работает.

Примечание. Я получаю эту ошибку только при попытке использовать SFML-код. Он успешно работает, когда я прокомментирую это.

  • 0
    Это опечатка, которую вы сделали в _gxx_perso*p*nality_v0 , или это было так в реальной ошибке?
  • 0
    @nmaier Typo. Thx
Показать ещё 2 комментария
Теги:
sfml
codeblocks
mingw

2 ответа

2
Лучший ответ

ОК, добавленная вами заметка говорит мне, что материал SFML был скомпилирован с другой версией/конфигурацией компилятора, более новой, если память правильно.

Вы должны убедиться, что SFML и ваш код скомпилированы одним и тем же компилятором (версии/конфигурации) или, по крайней мере, совместимым компилятором (версии/конфигурации).

Я вижу, что последние бинарные пакеты SFML используют GCC 4.7, а последний Code :: Blocks (mingw) поставляется с сборкой TDM GCC 4.7, поэтому может быть достаточно обновить Code :: Blocks и убедиться, что вы используете SFML GCC 4.7 TDM (SJLJ) (и использовать gcc, который поставляется с кодом :: Блоки, конечно).

В противном случае вы, вероятно, должны установить сборку компилятора TDM-GCC 4.7 вручную или если ничего не получится, скомпилируйте SFML самостоятельно.

  • 0
    Спасибо. Это сработало. :)
1

Это просто вопрос заказа PATH.

Скорее всего, у вас будет несколько файлов libstdС++ - 6.dll, загруженных в ваш путь. Вы можете проверить, запустив where libstdc++-6.dll в командной строке.

Что вы делаете, так это убедиться, что ваша папка bin MinGW загружена перед всем остальным. Попробуйте перенести его на первый в своем глобальном PATH.

  • 0
    Это был мой случай: у меня был путь MinGW в пользовательском PATH, который загружается после глобального PATH. Команда where наиболее полезна, спасибо за указание на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню