В моем проекте есть заголовок, называемый Core.h, который я использую в качестве предварительно скомпилированного заголовка:
$(CXX) $(CXX_CFLAGS) -x c++-header Core.h
, который создает файл с именем Core.h.gch
*#include "Core.h"
- это первая директива каждого исходного файла в модуле.
На OS X все работает нормально - мой проект компилируется нормально и довольно быстро.
Однако в Linux 7 из моих 100+ файлов выдают следующее предупреждение:
предупреждение: Core.h.gch: слишком короткий, чтобы быть файлом PCH
Как и любой другой исходный файл, #include "Core.h"
- это первая строка этих файлов.
Кто-нибудь когда-нибудь сталкивался с этим? Возможные причины? Почему только несколько файлов, которые содержат PCH, могут выдать предупреждение?
Я использую gcc версии 4.1.2 в Linux, 4.2.1 в OSX
Спасибо!
EDIT:
Вот как я собираю библиотеку:
.PHONY: all
all: $(MY_PCH) MYLIB.so MYLIB.a
MYLIB.so: $(MY_PCH) $(MY_OBJECTS)
$(CXX) $(MY_OBJECTS) $(CXX_LDFLAGS) -o $@
MYLIB.a: $(MY_PCH) $(MY_OBJECTS)
$(AR) $(ARFLAGS) $@ $(MY_OBJECTS)
$(MY_PCH):
$(CXX) $(CXX_CFLAGS) -x c++-header Core.h