Понимание времени выполнения C - PullRequest
4 голосов
/ 18 августа 2011

Я изучаю язык Си, и у меня есть вопрос. Если я скомпилирую и сделаю исполняемый файл для программы на C, скажем, BorlandC на одном ПК с Windows, а затем перенесу этот файл на другой ПК с Windows, на котором нет компилятора, как он будет работать там, где нет среды выполнения C и как работает управление памятью

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

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

2 голосов
/ 18 августа 2011

Для языка C часто имеется общая библиотека под названием "libc", которая должна поставляться с вашей ОС.Управление памятью осуществляется вашей собственной программой с помощью malloc (calloc и т. Д.) И бесплатной.Они также являются частью библиотеки.

Также обратите внимание, что компилятор и среда выполнения - это разные вещи (вы можете установить исполняемый файл без компилятора), хотя иногда они связаны вместе.

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