Я настраивал свое приложение для компиляции на окнах 8, используя mingw32 (i686-w64-mingw32, если быть точным). Насколько я могу сказать, я правильно установил toolchain и ссылки и т. Д., И приложение компилируется и запускается внутри кодовых блоков. Когда я пытаюсь запустить версию релиза вне кодовых блоков. Мое приложение зависит от libsndfile-1, csound и нескольких библиотек SDL2. Libsndfile и csound статически связаны, SDL2 динамически связан. В моей папке проекта мои DLL-файлы SDL2 расположены в \ GUI \ bin.«Не удалось найти точку входа в процедуру ....»
При попытке запустить .exe за пределами кодовых блоков ... Если я вставляю DLL в папку с тем же относительным файловым пути к .exe, что и в папке проекта (например, \ GUI \ bin), я получаю сообщения об ошибках говорит мне, что не может найти SDL2 DLL в
Если я Наклейте DLL файлы в той же папке, как EXE-файл, я получаю следующее сообщение:
процедура точки входа _ZNSt7__cxx1112basic_stringlcst11char_traitslcSt11char_traitslcESalcEE10_M_replaceEjjPKcj мог не располагаться в динамической библиотеке ссылок C: \ Users \ Питер \ Documents \ SDLGUIApp \ Bin \ Release \ SDL GUI.exe
Я сделал некоторые исследования, и я изо всех сил, чтобы найти информацию, которая имеет отношение к моей ситуации. Увидев, что он удаляет сообщения об ошибках «не удается найти DLL», когда я перемещаю их в ту же папку, что и .exe, тогда я предполагаю, что он находит их в одной папке, и эта ошибка вызвана чем-то другим, или он еще менее счастлив, когда их перемещают в одну папку, чем с ними в «правильном» месте. В любом случае, я в тупике!
Любая помощь будет очень признательна!
Пит
EDIT:
Некоторые источники, которые я нашел показывают, что порядок, в котором я связываю с библиотеками может привести к аналогичной (хотя и не идентичны) ошибок. Я попытался перетасовать их, но ничто из того, что я пробовал, не улучшило его. Вот как я Сшивание
В других вариантах линкера:
-lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf
В библиотек:
C: \ Program Files \ Libraries \ Csound6 \ bin \ csound64.lib C: \ Program Файлы \ Библиотеки \ libsndfile32 \ lib \ libsndfile-1.lib
Посмотрите на журнал сборки кода, чтобы он сначала связывал «другие параметры компоновщика». Я предполагаю, что это, потому что один из последних разделов из журнала сборки говорит, что это:
-lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf -s -mwindows -lmingw32 «C: \ Program Files \ Библиотеки \ Csound6 \ bin \ csound64.lib "" C: \ Program Файлы \ Библиотеки \ libsndfile32 \ lib \ libsndfile-1.Lib»
Я не уверен, что -s означает, и почему он упоминает -lmingw32 дважды
EDIT:.
К сожалению, дальнейшее редактирование ... Я читал о том, как аналогичные ошибки возникают либо из-за отсутствия основной функции, либо из-за неправильного типа сборки, выбранного в параметрах сборки кодовых блоков (как правило, это разница между консольным или графическим интерфейсом, установленным под опцией типа). Я попытался изучить эти идеи, но я определенно имеют функцию «int main()», main.cpp включен как в сборку отладки, так и в выпуске, и у меня есть «консольное приложение», выбранное как тип сборки для отладки a й выпуск, насколько я могу судить, ошибка не из-за любого из них.
Благодарим Вас за ответ, и жаль, что так долго реагировать. Я не могу найти какие-либо функции, названные так. Хотя то, что произошло со мной, это то, что в нем упоминается строка и символ. Mingw жаловался на некоторые преобразования из char * в строку или из строки в char *. Я не на машинке для окон, поэтому пока не могу проверить. Я бы подумал о точке b. будет влиять на мою программу, работающую как внутри, так и вне IDE, но я не уверен в этом, поэтому дайте мне знать, если я ошибаюсь. Я сделаю привет мир и отчитаюсь ... –
Спасибо за ссылки тоже, пока я еще не нашел ответа на мою проблему, они помогли мне с некоторыми другими вещами, которые были бы явственно выпущены, как только я это решил: D Является ли это готовым решением для ответа если они вообще полезны? Или они должны быть правильным решением проблемы? –