Что такое «время выполнения»? - PullRequest
4 голосов
/ 14 июня 2010

У моей компании всегда возникают проблемы с программным обеспечением, которое не работает из-за отсутствия времени выполненияЯ слышал, как люди много говорят об этом (вам нужны 32-разрядные версии, Microsoft и т.д.)DLL файлы?Что-то другое?Может кто-нибудь уточнить, пожалуйста?

Ответы [ 4 ]

4 голосов
/ 14 июня 2010

Время выполнения - это, в основном, время выполнения кода (в отличие от времени компиляции или компоновки).

В контексте, который вы видите, это означает библиотеки времени выполнения, те библиотеки, которые необходимы для загрузки вашей программы.

Это динамически связанные вещи (библиотеки DLL или общие объекты), поскольку статически связанный код не может отсутствовать (он находится в самом исполняемом файле).

Классический пример - зависеть от библиотек Microsoft C времени выполнения или .NET, но не поставлять их вместе с вашим продуктом. Это означает, что ваш исполняемый файл будет работать на любом компьютере, на котором уже есть эти библиотеки (например, с установленной Visual Studio), но не обязательно на каждом компьютере, на котором вы хотите запустить свой код.

Я ответил на вопрос здесь о разнице между статической и динамической связью, которая, надеюсь, должна добавить к вашим знаниям. Динамическое связывание позволяет обновлять определенные части приложения без перекомпиляции или перекомпоновки. Вы делаете это, вставляя новую версию DLL. К сожалению, наличие этого кода в отдельном файле означает, что он может пропасть.

Это было бы одной из причин проблемы, но я подозреваю, что наиболее вероятно, что кто-то не очень хорошо выполнил свой установочный код, иначе все необходимое было бы установлено.

3 голосов
/ 14 июня 2010

A runtime в этом контексте представляет собой runtime library - разделяемую библиотеку (в Windows, действительно, DLL), чаще всего конкретно ссылающуюся на ту, которая обеспечивает базовые функциональные возможности языка. Он реализует функции, которые считаются «встроенными» в ядро ​​языка. Таким образом, ни одна программа, скомпилированная с помощью компилятора, которому требуется библиотека времени выполнения, не будет работать, если такая библиотека для нее не установлена ​​или если программа специально статически связана (со всем необходимым, упакованным в исполняемый файл).

2 голосов
/ 14 июня 2010

Для практического примера - вот несколько ссылок на некоторые распространенные среды выполнения:

Это общесистемные установки, поэтому любое программное обеспечение, для которого требуется определенная среда выполнения, сможет его использовать после установки.

1 голос
/ 14 июня 2010

Они, вероятно, относятся к сторонним библиотекам Microsoft и .NET Framework.

В приложениях вашей компании, вероятно, используются некоторые сторонние библиотеки, такие как MFC, ATL и т. Д., Если приложение написано на языке .NETнапример, C #, VB.NET, если вы разрабатываете с использованием Java, для запуска приложения необходимо установить JRE (Java Runtime env).

Если требуемые библиотеки dll / framework не установлены/ развернутый на компьютере клиента, вы, вероятно, получите «ошибку времени выполнения».

Это проблема развертывания, которая может быть решена с помощью правильного процесса установки, например, установщик может проверить, установлена ​​ли необходимая среда и, если нет, установить ее как часть процесса установки.

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