Использование предварительно скомпилированных заголовков с CMake - PullRequest
94 голосов
/ 29 сентября 2008

Я видел несколько (старых) постов в сети о том, как взломать некоторую поддержку предварительно скомпилированных заголовков в CMake. Все они кажутся немного повсюду, и у каждого есть свой способ сделать это. Каков наилучший способ сделать это в настоящее время?

Ответы [ 12 ]

0 голосов
/ 22 апреля 2009

Что ж, когда сборки на четырехъядерном компьютере занимают более 10 минут каждый раз, когда вы меняете одну строку в любом из файлов проекта, это говорит о том, что пора добавлять предварительно скомпилированные заголовки для окон. На * nux я бы просто использовал ccache и не беспокоился об этом.

Я реализовал в своем основном приложении и несколько библиотек, которые оно использует. Это прекрасно работает на данный момент. Также необходимо создать исходный файл pch и заголовочный файл и включить в исходный файл все заголовки, которые вы хотите предварительно скомпилировать. Я делал это в течение 12 лет с MFC, но мне потребовалось несколько минут, чтобы вспомнить, что ...

0 голосов
/ 08 октября 2008

Даже не ходи туда. Предварительно скомпилированные заголовки означают, что всякий раз, когда изменяется один из заголовков, вам нужно перестраивать все . Вам повезло, если у вас есть система сборки, которая это реализует. Чаще, чем никогда, ваша сборка будет терпеть неудачу, пока вы не поймете, что изменили что-то, что прекомпилируется, и, следовательно, вам необходимо выполнить полную перестройку. Вы можете избежать этого, в основном, предварительно скомпилировав заголовки, которые абсолютно положительны, они не изменятся, но тогда вы также потеряете большую часть прироста скорости.

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

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