“无法打开源文件”错误与现有文件和正确的路径

问题描述 投票:1回答:1

我正在构建一些自定义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即可。

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

c++ qt msbuild cl
1个回答
3
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.