用Cmake和Visual Stuidio构建LLVM无法安装
Building LLVM with CMake and Visual Stuidio fails to install,
我当前在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".
其他所有内容都可以正常安装,其他LIB,标题都在那里,是的,我正在管理模式下运行Visual Studio,只是为了确保复制周围的文件等。这是完整的错误:
我进行了仔细检查,并且相同的路径起作用,我试图在Correpsond 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的怪异旧重新分布,即使清除安装程序后,我也无法安装它,因为有一个新的。对此事的任何帮助将不胜感激
欢呼
可以通过添加以下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
通过此修复程序,我成功地编译并安装了LLVM 10,并使用Visual Studio 2017。
我是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()
我一直在为此而战,但是暂时,我有解决方法。诀窍是直接从CMake触发安装目标而无需打开Visual Studio,这似乎可以解决问题。
我只是从cmake构建:
cmake --build . --config Release --target ALL_BUILD
cmake --build . --config Release --target INSTALL
所有这样的总结实际上要快得多,因为您避免了所有侧面工作,而vs vs in索引等等。
对于现在来这个问题的任何人来说
- 确保视觉工作室在路径上,
- 将cmake添加到路径
第一个是通过运行"开发人员命令提示为VS2017"而不是常规命令提示来解决的,但是我相信还有其他方法可以实现这一目标。第二个(假设典型的CMAKE安装路径):
set PATH=C:Program FilesCMakebin;%PATH%
- 在Ubuntu 16.04上安装Cilk时出现问题
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 如何将 I->getType() 作为参数传递给 llvm 中的 CreateCall?
- C++:如何在CLion IDE中安装Boost
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 是否可以将llvm::FunctionType转换为C/C++原始函数指针
- llvm构建器向基本块添加终止符
- 安装opencv失败-粘贴CMakeError.log的内容
- 在cygwin中测试新的boost安装时出现cpp错误
- 正在LLVM中检测整数比较条件
- 有人安装"IITB Simplecpp in mac"吗?
- 如何在LLVM中dyn_cast以识别StoreInst?
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 用Cmake和Visual Stuidio构建LLVM无法安装
- 在Mac OS X上使用LLVM安装和编译
- 使用 llvm-gcc 4.x 安装 srilm 1.6.0 时出现问题
- 在apt-get安装后没有找到LLVM头文件
- 无法为Eclipse CDT安装LLVM工具链
- LLVM 和安装时间优化