Я пытаюсь скомпилировать Qt в Windows, и у меня возникла интересная проблема С#includes ошибкой с ошибкой в том, что включенный файл не существует ( "Нет такого файла или каталога" ). Однако файл существует. Файлы, делающие включение, представляют собой автоматически сгенерированные файлы "moc" (сделанные Qt), которые содержат следующие элементы:
#include "../../../../../../../../qt-everywhere-opensource-src-4.8.2/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h"
Строка в том числе содержит 127 символов. Существует много файлов "moc", созданных и скомпилированных в сборке, но только те, у которых очень длинная длина (127 + символов), терпят неудачу.
Эти файлы, похоже, сидят в системе UNIX и распространяются через Samba на Windows. Я смог обойти эту проблему, создав символическую ссылку и заменив "qt-везде-opensource-src-4.8.2" на "qt-4.8.2" в затронутых файлах. В результате:
#include "../../../../../../../../qt-4.8.2/examples/tools/plugandpaintplugins/extrafilters/extrafiltersplugin.h"
имеет длину всего 102 символа и отлично работает.
Я искал вокруг и не мог найти никакой ссылки на это. Я также не мог реплицировать проблему за пределами этой сборки Qt (просто делая произвольно длинные имена файлов и пытаясь их включить). Таким образом, возможно, что как-то make файлы nmake
, которые создает Qt, делают что-то, когда они запускают cl
, что в какой-то мере заставляет его отклонять long.
Есть ли у кого-нибудь дополнительная информация об этом?