Прекомпилированный заголовок и Visual Studio - PullRequest
3 голосов
/ 11 июля 2011

Есть ли способ установить параметры решения Visual Studio, чтобы он просто создавал предварительно скомпилированные заголовки без создания целого решения.В частности, это огромное решение C ++ со множеством проектов само по себе.

Спасибо.

Ответы [ 3 ]

10 голосов
/ 05 апреля 2013

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

В статье говорится, что вам нужно добавить stdafx.h ко всем источникам и заголовкам; это не правильно. Достаточно добавить к источникам - убедитесь, что это первая строка, хотя все, что раньше, будет игнорироваться.

В статье об этом не упоминается, но вы будете получать ошибки из источников, которые не содержат stdafx.h. У вас есть выбор для устранения этой ошибки: вы либо добавляете ее, либо исключаете источник (источники) из процесса предварительной компиляции. Чтобы исключить исходные файлы: - выберите исходные файлы в обозревателе решений; да, вы можете выбрать больше сразу, - щелкните правой кнопкой мыши на выделенном исходном файле, - нажмите свойства из всплывающего меню, - выберите «Все конфигурации» в поле со списком сверху, - в конфигурации C-C ++ нажмите «Предварительно скомпилированные заголовки», - в правой части выберите «Не использовать предварительно скомпилированные заголовки», - нажмите применить, - нажмите ОК.

Наслаждайтесь новыми сборками через несколько секунд (первая сборка займет больше времени).

10 голосов
/ 11 июля 2011

Выберите только исходный файл создателя pch (обычно stdafx.cpp) и скомпилируйте его (Ctrl-F7, или щелкните его правой кнопкой мыши и выберите «Compile»)

Больше информации, так как она не работает для вас:

В каждом проекте, в котором используется предварительно скомпилированный заголовок, есть один исходный файл, который используется для создания файла pch, а остальные только используют файл pch. Этот исходный файл обычно состоит только из одной строки:

#include "StdAfx.h"

"Stdafx.h" - это имя предварительно скомпилированного заголовочного файла в Visual C ++, оно может быть для вас другим. Если вы сами скомпилируете «StdAfx.cpp», это сгенерирует файл с именем «Your_Project_Name.pch» (опять же, это только по умолчанию). Вы должны увидеть его в промежуточном каталоге, там, где находятся все файлы obj. Это предварительно скомпилированный заголовок. Если вы сделали, как я сказал, и выбрали «Скомпилировать», а не «Скомпилировать», другие файлы не будут скомпилированы и ссылки не будут установлены.

Если это все еще не решит вашу проблему, тогда я понятия не имею, о чем вы спрашиваете.

2 голосов
/ 11 июля 2011

Если вы щелкнете правой кнопкой мыши по любому файлу Cpp, кроме stdafx.cpp из вашего проекта, и установите для параметра «Исключено из сборки» значение «Да», он будет генерировать только предварительно скомпилированный заголовок.

Вы можете добиться того же результата с помощью командной строкиили если вы создаете новый проект, содержащий только ваш stdafx.cpp

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