Точка входа в процедуру не найдена в библиотеке
Я хочу использовать tgbot-cpp в windows. Компилирую с помощью msys2, но при запуске из cmd выдает ошибку:
если запускать из msys2 в cmd, то все работает:
Вопрос: как запускать exe-шник из cmd.
Ответы (1 шт):
Автор решения: HolyBlackCat
→ Ссылка
Ваша программа подхватывает неправильную версию какой-то из dll, которые использует.
Почему в терминале MSYS2 все работает, а в CMD нет? Разница только в PATH - в первом случае первый элемент в PATH - это /mingw64/bin, в которой как раз лежат правильные версии всех нужных dll.
Решение такое:
- Ставите себе пакет
mingw-w64-x86_64-ntldd. - Командой
ntldd -R my_program.exeузнаете список всех dll, которые ваша программа использует. - Из них выбираете только те, которые лежат в
/mingw64/bin, остальные игнорируете. - Получившиеся dll копируете из
/mingw64/binв папку, где лежит ваш экзешник.
Если не помогает, тогда делаете вот что:
- В выводе
ntlddищете все.dll, лежащие вC:\Windows(или вложенных папках). - Потом руками открываете
/mingw64/binи смотрите, какие.dllтам есть. - В идеале одинаковых
.dllбыть не должно. Если они есть, то удаляете их изC:\Windows. Их там быть не должно, но некоторые кривые инсталлеры (или неразумные программисты) могут их туда положить. - Потом повторяете действия из первой половины ответа.


