Заставляя moc пропускать файлы / папки во время сборки
Это известная ошибка, которая вызывает moc над макросами, используемыми в libstdC++, как описано здесь: http://lists.kde.org/?l=necessitas-devel&m=132317657926916&q=raw
Я пытаюсь скомпилировать проект, который использует gcc 4.6.3 и застрял, потому что moc работает над макросами.
Один из способов решения этой проблемы - включить директивы, указанные в этой ссылке:
http://doc.qt.io/qt-4.8/moc.html
но это отнимает много времени и не очень чистый способ, так как каждый файл должен иметь эти директивы.
Я хотел бы знать, можно ли настроить qmake таким образом, чтобы moc пропускал определенные каталоги / файлы?
отредактировано: опечатки
1 ответ
Согласно Qt qmake docs moc будет запускаться для файлов, которые добавляются в HEADERS
переменная (акцент мой):
qmake сгенерирует информацию о зависимостях (если в командной строке не указано -nodepend) для указанных заголовков. qmake также автоматически определит, требуется ли moc классам в этих заголовках, и добавит соответствующие зависимости и файлы в проект для генерации и связывания файлов moc.
Поэтому, если вы не хотите, чтобы moc запускался для определенных файлов, не добавляйте их в HEADERS
в вашем.pro файле. Однако для некоторых платформ это может привести к тому, что заголовки не будут найдены при компиляции соответствующих файлов.cpp. Чтобы это исправить, добавьте INCLUDEPATH
для папок, содержащих такие заголовки - moc не будет работать для заголовков, которые находятся внутри INCLUDEPATH
,