Включить предварительно скомпилированный заголовок в ifdef

У меня есть кроссплатформенный проект, и все дело в 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

Есть ли способ обойти эту проблему?

Спасибо заранее.

0

Решение

У меня уже есть эта проблема, и для меня один из этих двух вариантов работал для меня.

1) Может быть, если вы добавите #pragma once в начале файла (даже перед защитой заголовка #ifndef _WIN32).

2) Или вы можете добавить к своим заголовочным файлам эту схему:

#ifndef MYHEADER_H
#define MYHEADER_H
... contents of myheader.h
#endif /* MYHEADER_H */

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

Надеюсь, что это работает!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]