Форум программистов, компьютерный форум CyberForum.ru

Работа многофайлового проекта - C++

Восстановить пароль Регистрация
 
EfimKR
 Аватар для EfimKR
48 / 21 / 10
Регистрация: 24.06.2014
Сообщений: 210
Записей в блоге: 1
23.11.2014, 09:06     Работа многофайлового проекта #1
С++ позволяет создавать многофайловые проект. Это повышает производительность, так как программа стает модульной и ее легко изменить и тд. Но есть и еще одно преимущество, если изменить один файл в проекте то перекомпилирован будет только он.
Возник вопрос, а как среда разработки определяет что файл был изменен? И как что то подобное можно организовать в своем приложении?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11844 / 6823 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
23.11.2014, 09:23     Работа многофайлового проекта #2
Цитата Сообщение от EfimKR Посмотреть сообщение
Это повышает производительность
???
Цитата Сообщение от EfimKR Посмотреть сообщение
Возник вопрос, а как среда разработки определяет что файл был изменен?
например, можно посмотреть время изменения файла и, если он обновлялся с момента последней компиляции, то компилировать его.
Цитата Сообщение от EfimKR Посмотреть сообщение
И как что то подобное можно организовать в своем приложении?
Зачем?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
23.11.2014, 09:28     Работа многофайлового проекта #3
Цитата Сообщение от EfimKR Посмотреть сообщение
как среда разработки определяет что файл был изменен?
Для юниксов есть ccache
Цитата Сообщение от EfimKR Посмотреть сообщение
И как что то подобное можно организовать в своем приложении?
В своем - это в каком? В своей самописной ide?
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2908 / 1444 / 397
Регистрация: 18.10.2014
Сообщений: 2,662
23.11.2014, 10:05     Работа многофайлового проекта #4
Цитата Сообщение от EfimKR Посмотреть сообщение
Возник вопрос, а как среда разработки определяет что файл был изменен?
В простейшем и наиболее широко используемом случае: просто сравнивается время последнего изменения исходного файла с временем создания результата компиляции этого файла.

Например, результатом компиляции файла 'a.cpp' является объектный файл 'a.obj'. Если время последнего изменения 'a.cpp' больше времени создания 'a.obj', то 'a.cpp' будет перекомпилирован и, соответственно, 'a.obj' - пересоздан заново.

Разумеется, чтобы все это работало правильно, компилятор еще должен следить за временами последнего изменения файлов, включенных в 'a.cpp' через #include.

Этот принцип применяется на всех уровнях процесса компиляции. Также, например, если объектный файл 'a.obj' затем входит в состав выполнимого файла 'program.exe', и время создания 'a.obj' оказывается больше времени создания 'program.exe', то 'program.exe' будет пересобран из объектных файлов заново.
Yandex
Объявления
23.11.2014, 10:05     Работа многофайлового проекта
Ответ Создать тему
Опции темы

Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru