Ошибка «Не удается открыть исходный файл» с существующим файлом и правильным путем - PullRequest
0 голосов
/ 09 мая 2018

Я собираю некоторые пользовательские компоненты Qt в виде статической библиотеки, но не могу пройти этап компиляции. Мой проект структурирован следующим образом:

Root:
 - .h and . cpp files of the custom Qt components
 - GeneratedFiles/Debug/ <-- here the MOC compiler puts the generated moc_*.cpp files ("Debug" is automatically deducted from the build configuration, so it's Release for release builds)

Это довольно стандартная папка, но по какой-то причине компилятор не может найти только файлы moc . Все, что находится в корневой папке, просто отлично, но файлы moc не найдены. Обратите внимание: файлы moc_ генерируются просто отлично и существуют там, где они должны быть, с правильным содержанием . Проблема, похоже, заключается в оценке пути GeneratedFiles\Debug\moc_whatever.cpp.

Интересно, что если я переместу moc-файл (скажем, moc_example.cpp) в корневую папку и вручную адаптирую вызов к CL.exe для компиляции moc_example.cpp вместо GeneratedFiles\Debug\moc_example.cpp, файл будет собран.

Я использую VS 2017 версии 15.7.1, CL является версией 19.00.24215.1 для x64, и я обновлю вопрос, если понадобятся другие подробности, просто добавьте запрос в комментарии.

Итак ... Почему компилятор говорит мне, что эти файлы не существуют?

1 Ответ

0 голосов
/ 14 мая 2018

Я наконец решил эту проблему, перестроив структуру каталогов в новый каталог. Очевидно, что использование git WSL для проверки хранилищ под Windows нарушает что-то в файловой системе способом, который невидим в командной строке Explorer или Ubuntu, но нарушает компилятор (и intellisense в Visual Studio).

Проверка хранилища с помощью Git для Windows, по-видимому, не вызывает такую ​​же проблему.

...