我在Windows下构建llvm + compiler-rt时遇到了一个问题。我正在使用最新的vs 2017社区和cmake来生成解决方案。一切顺利。
然后我按照说明进行操作。我遇到的问题是安装时间;我收到以下错误:
file INSTALL cannot find
77> "F:/WORK_IN_PROGRESS/compile/build/$(Configuration)/lib/clang/6.0.0/lib/windows/clang_rt.builtins-x86_64.lib".
所有其他安装都很好,其他的库,标题都在那里,是的我在管理模式下运行visual studio只是为了确保复制文件周围没有问题等。这是完整的错误:
我已经双重检查并且相同的路径工作,文件存在我试图进入correpsonding cmake安装并将斜杠更改为反斜杠仍然没有运气。我可以手动复制lib,但我不确定我还需要复制什么,以及我为什么要尝试正确解决它。我离开了行李箱,但看起来我已经离开了一段时间的问题:
77>CMake Error at projects/compiler-rt/lib/builtins/cmake_install.cmake:34 (file):
77> file INSTALL cannot find
77> "F:/WORK_IN_PROGRESS/compile/build/$(Configuration)/lib/clang/6.0.0/lib/windows/clang_rt.builtins-x86_64.lib".
77>Call Stack (most recent call first):
77> projects/compiler-rt/lib/cmake_install.cmake:33 (include)
77> projects/compiler-rt/cmake_install.cmake:33 (include)
77> projects/cmake_install.cmake:32 (include)
77> cmake_install.cmake:64 (include)
77>
另外,作为旁注,看起来安装过程正试图访问vs 2017的奇怪的旧可再发行组件而且我无法安装它,即使在清理安装程序后它也会因为有新的安装程序而失败。 任何有关此事的帮助将不胜感激
干杯
答案 0 :(得分:1)
这可以通过添加以下CMake代码行来解决:
string(REGEX REPLACE "\\$\\(Configuration\\)" "$<CONFIG>" output_dir "${output_dir}")
此处:
https://github.com/llvm/llvm-project/blob/master/compiler-rt/cmake/Modules/AddCompilerRT.cmake#L12
通过此修复程序,我成功地使用Visual Studio 2017编译并安装了LLVM 10。
我是LLVM的新手。熟悉LLVM的人可能会帮助我将此修复程序提交给llvm-project。谢谢!
答案 1 :(得分:0)
我一直在与此斗争,但暂时,我有一个解决方法。诀窍是直接从CMake触发INSTALL目标,而不需要打开visual studio,这似乎可以解决问题。
从CMake构建我只是做了:
cmake --build . --config Release --target ALL_BUILD
cmake --build . --config Release --target INSTALL
所有总结这种方式实际上要快得多,因为你避免了VS为索引等做的所有副作用。
答案 2 :(得分:0)
对于现在遇到这个问题的任何人:Marco Giordanos的回答几乎对我来说是成功的,但是我必须先采取一些其他步骤(对我而言这并不明显):
第一个问题是通过运行“ VS2017开发人员命令提示符”而不是常规命令提示符来解决的,但是我相信还有其他方法也可以实现。第二条(假设典型的CMake安装路径):
set PATH=C:\Program Files\CMake\bin;%PATH%