gpt4 book ai didi

c++ - 使用 CMake 和 Visual Studio 构建 LLVM 安装失败,

转载 作者:行者123 更新时间:2023-12-02 10:24:43 24 4
gpt4 key购买 nike

我目前在 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".

其他一切都安装正常,其他库、 header 都在那里,是的,我在管理员模式下运行 visual studio 只是为了确保复制文件周围等没有问题。这是完整的错误:

我已经仔细检查过相同的路径,该文件存在我试图进入相应的 cmake 安装并将斜杠更改为反斜杠仍然没有成功。我可以在那里手动复制库,但我不确定我还需要复制什么以及我试图正确解决它的原因。我离开了主干,但看起来我的问题已经消失了一段时间:

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 的一个奇怪的旧可再发行组件,但我无法安装它,即使在清除安装程序之后它也失败了,因为有一个新的。对此事的任何帮助将不胜感激

干杯

最佳答案

这可以通过添加以下 CMake 代码行来解决:

string(REGEX REPLACE "\\$\\(Configuration\\)" "$<CONFIG>" output_dir "${output_dir}")

这里:

https://github.com/llvm/llvm-project/blob/1692c2fdaacc628cf19638025727496397e52c5a/compiler-rt/cmake/Modules/AddCompilerRT.cmake#L12

通过此修复,我使用 Visual Studio 2017 成功编译并安装了 LLVM 10。

我是 LLVM 的新手。熟悉 LLVM 贡献的人可能会帮助我将此修复提交到 llvm 项目。谢谢!

更新

此修复未提交。此处提供了代码片段,希望对您有用。

if(CMAKE_CONFIGURATION_TYPES)
string(REGEX REPLACE "\\$\\(Configuration\\)" "$<CONFIG>" output_dir "${output_dir}") # <--- The added line
foreach(build_mode ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${build_mode}" CONFIG_SUFFIX)
set_target_properties("${target}" PROPERTIES
"ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir}
"LIBRARY_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir}
"RUNTIME_OUTPUT_DIRECTORY_${CONFIG_SUFFIX}" ${output_dir})
endforeach()
else()
set_target_properties("${target}" PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${output_dir}
LIBRARY_OUTPUT_DIRECTORY ${output_dir}
RUNTIME_OUTPUT_DIRECTORY ${output_dir})
endif()

关于c++ - 使用 CMake 和 Visual Studio 构建 LLVM 安装失败,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46108390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com