C++ CMake为LLVM生成的Visual Studio 2017解决方案中的筛选器文件存在问题
如何复制: (1) 从从llvm GitHub下载的zip文件中提取LLVM9.x源文件中的子文件夹“llvm”和“clang”(zip文件中的根文件夹为llvm-project-release-9.x) (2) 在同一级别创建一个生成文件夹“build-x64”,并将其cd到VS2017 x64 native tools命令行窗口中的文件夹中 (3) 执行: (4) 打开生成的VS2017解决方案 现在的问题是,在VS2017的“解决方案资源管理器”中,子文件夹“Clang Libraries”下的所有项目都有错误的结构:C++ CMake为LLVM生成的Visual Studio 2017解决方案中的筛选器文件存在问题,c++,visual-studio,cmake,visual-studio-2017,llvm,C++,Visual Studio,Cmake,Visual Studio 2017,Llvm,如何复制: (1) 从从llvm GitHub下载的zip文件中提取LLVM9.x源文件中的子文件夹“llvm”和“clang”(zip文件中的根文件夹为llvm-project-release-9.x) (2) 在同一级别创建一个生成文件夹“build-x64”,并将其cd到VS2017 x64 native tools命令行窗口中的文件夹中 (3) 执行: (4) 打开生成的VS2017解决方案 现在的问题是,在VS2017的“解决方案资源管理器”中,子文件夹“Clang Libraries
References
External Dependencies
Object Libraries
CMakeList.txt
正确的结构应如下所示:
References
External Dependencies
Header Files
Source Files
TableGen descriptions
CMakeList.txt
因此,子文件夹“对象库”下的项目应采用上述错误结构,即“Clang Libraries”下的项目结构似乎已与“Object Libraries”下的相应项目进行了切换,例如,“Clang Libraries”下的clangAST与“Object Libraries”下的obj.clangAST
原因似乎是筛选器文件,例如
build-x64\tools\clang\lib\AST\clangAST.vcxproj.filters
build-x64\tools\clang\lib\AST\obj.clangAST.vcxproj.filters
clangAST.vcxproj.filters的内容包含obj文件,而obj.clangAST.vcxproj.filters包含错误的cpp/头文件
手动修改错误的筛选文件,即切换组,然后删除.vs文件夹,只显示子文件夹,但不显示文件
该问题不会影响构建,它只会使VS2017在错误的位置显示文件。LLVM/Clang 6.0没有这个问题
CMake脚本中是否存在一些bug以及如何修复它们
build-x64\tools\clang\lib\AST\clangAST.vcxproj.filters
build-x64\tools\clang\lib\AST\obj.clangAST.vcxproj.filters