У меня есть кроссплатформенный проект, и все дело в Windows, я хочу использовать предварительно скомпилированные заголовки (в данном случае это действительно важно) и Linux, я не хочу этого. Поэтому я хотел бы иметь что-то вроде этого:
#ifdef _WIN32
#include "precompiled.h"#endif //#ifdef WIN32
Когда я строю на Windows, я получаю эту досадную ошибку, утверждая:
PCH warning: header stop cannot be in a macro or #if block. An intellisense pch was not generated
Есть ли способ обойти эту проблему?
Спасибо заранее.
У меня уже есть эта проблема, и для меня один из этих двух вариантов работал для меня.
1) Может быть, если вы добавите #pragma once
в начале файла (даже перед защитой заголовка #ifndef _WIN32).
2) Или вы можете добавить к своим заголовочным файлам эту схему:
#ifndef MYHEADER_H
#define MYHEADER_H
... contents of myheader.h
#endif /* MYHEADER_H */
Это гарантирует, что ваш заголовок будет скомпилирован только один раз, и это предупреждение исчезнет (по крайней мере, для меня).
Надеюсь, что это работает!
Других решений пока нет …