"无法打开源文件"现有文件和正确路径出错

时间:2018-05-09 18:58:58

标签: c++ qt msbuild cl

我将一些自定义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 for x64,我会用任何其他细节更新问题可能有用,只需在评论中添加ask。

所以...为什么编译器告诉我那些文件不存在?

1 个答案:

答案 0 :(得分:3)

我终于解决了在新目录中重建目录结构的问题。显然,使用WSL的git检查Windows下的存储库会破坏文件系统中的某些东西,这种方式在资源管理器或Ubuntu的命令行中是不可见的,但这会破坏编译器(和Visual Studio的智能感知)。

使用Git for Windows检出存储库似乎可以避免导致同样的问题。