Почему для запуска моей программы на c ++ необходимо скопировать libstdc ++ - 6.dll? - PullRequest
0 голосов
/ 25 декабря 2018

Я только начинаю изучать c ++, используя IDE CodeLite.Все работает нормально, однако я столкнулся с проблемой, когда программа компилируется, но завершается немедленно.Мне удалось это исправить, скопировав файл libstdc ++ - 6.dll из MinGW в ту же папку, что и программа exe.Хотя я не возражаю против этого, мне интересно, есть ли способ заставить CodeLite автоматически включать этот файл в каждый проект.

1 Ответ

0 голосов
/ 25 декабря 2018

Ваша программа аварийно завершает работу, потому что она не может найти нужную ей зависимость (в данном случае это libstdc ++).Для некоторого фона у вас может быть 2 типа зависимостей: статическая и динамическая.Статические зависимости встроены в вашей программы.Динамические зависимости зависят от загрузки во время выполнения (Windows называет эти библиотеки DLL).

Как упоминалось в комментариях drescherjm, операционные системы используют переменные path для хранения зависимостей, программных путей командной строки и другихИнформация.Просто перейдите в кнопку поиска Windows и напишите «Переменные среды», а затем нажмите «Путь» в разделе «Системные переменные» (чтобы сделать dll доступной для всей системы) или «Пользовательские переменные» (чтобы сделать dll доступной только дляваш счет).Затем вы можете добавить новый путь к папке или скопировать его в существующий.Обратите внимание, что Windows также будет искать в том же каталоге, что и исполняемый файл (именно поэтому копирование DLL работало).

Обратите внимание, что если вы когда-нибудь распространите вашу программу в Интернете, вам также необходимо убедиться, чтопользователь имеет эти динамические зависимости.Вы можете включить библиотеки DLL в комплект (не упуская лицензию) или сообщить им, где они могут его найти.

...