Отсутствует DLL, когда я перемещаю .exe в другой p c (msvcp140.dll, vcruntime140.dll и vcruntime140_1.dll) - PullRequest
0 голосов
/ 11 марта 2020

Я создал два консольных приложения (запрограммированных на C / C ++), клиент и сервер, которые обмениваются сообщениями. Приложения работают хорошо, но проблема возникает, когда мне приходится переключать исполняемый файл на другой компьютер, на котором не установлена ​​Visual Studio. После запуска одного из двух приложений мне сообщают, что отсутствуют msvcp140.dll, vcruntime140.dll и vcruntime140_1.dll. Поэтому я провел некоторое исследование и попытался решить. Некоторые говорили, что нужно настроить stati c linking (Свойства конфигурации -> C / C ++ -> Генерация кода -> Библиотека времени выполнения: «Многопоточная (/ MT)»), но однажды я переключился на второй p c Я получил сообщение о том, что DLL отсутствуют.

Кроме того, исполняемый файл не увеличился в размерах (12 КБ) по сравнению с предыдущим. Некоторые сказали, что они пытались использовать сторонние приложения или просто переключить dll на второй p c. Моя цель, однако, состояла в том, чтобы получить один исполняемый файл, который работал бы автономно, без использования установщиков.

Поиск на различных форумах Я не нашел решений; Дело в том, что те же приложения, скомпилированные в Dev- Cpp, а затем перенесенные во второй p c, работали отлично, поэтому должен быть способ. Разница, которую я заметил между .exe, скомпилированным в Dev и Visual Studio, заключается в размере (примерно 1,3 МБ и 23 КБ соответственно). Итак, как я могу (если это возможно в VS) получить один .exe (больший или меньший размер исполняемого файла не проблема), что я могу перейти на другой компьютер без необходимости какой-либо DLL?

Я программирую в Visual Studio 2019, студенческая версия; в качестве «second p c» я использую виртуальную машину, работающую Windows 10 (та же система, что и у хоста). Конфигурация решения при сборке: Выпуск x86.

1 Ответ

0 голосов
/ 11 марта 2020

Я думаю, вы можете сделать один файл. Проверьте свойства конфигурации -> общие -> использование MF C: выберите «Использовать стандартные windows библиотеки». И (вы писали об этом): (Свойства конфигурации -> C / C ++ -> Генерация кода -> Библиотека времени выполнения: 'Многопоточная (/MT)'.

Если это не так ничем не помогаем. Вы можете использовать средство обхода зависимостей (бесплатное программное обеспечение) для проверки зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...