Скомпилированные заголовки с GCC / GMake, вызывающие предупреждение `pragma` (Premake)

В моем файле Premake я иду:

pchheader("../../"..dir_root.."stdafx.h")

Я обнаружил, что это по крайней мере частично работает. (Вызов несколько отличается для ICC в Windows.)

При компиляции я получаю ровно одно предупреждение:

stdafx.h
../../mylibrary/stdafx.h:1:9: warning: #pragma once in main file
#pragma once
^

Я полагаю, что это происходит из-за компиляции предварительно скомпилированного заголовка GCC (как если бы это был какой-то основной файл). Итак, это предупреждение (вроде?) Оправдано.

Я бы предпочел не удалять #pragma once что явно в stdafx.h (хотя я предполагаю, что это исправит предупреждение), потому что сборки не используют PCH.

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

3

Решение

Ну, в C ++, ваш главный файл (файл с вашей основной функцией, int main(int argc, char * argv[]) не должен иметь #pragma once потому что это только для заголовочных файлов. Так что кажется, что ваша основная функция в stdafx.h когда это не должно быть. Если это так, поместите его в файл .cpp и включите туда свои заголовочные файлы.

Это всего лишь предупреждение, так что не волнуйтесь.

0

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

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

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