我试图构建LLVM 3.1和Clang 3.1。我跟着从Clang's website入门指南 - 检查出库在必要的地方,让Python等构建LLVM失败,并显示空的错误消息
如果我已经安装了Python 3.3,它提供了Python的语义错误 - from main import main
,没有模块称为main
。如果我安装了Python 2.7,它会给出
CMake Error at CMakeLists.txt:307 (message):
Unexpected failure executing llvm-build:
Configuring incomplete, errors occurred!
这是最没有帮助的。有什么建议可以在Windows上构建LLVM和Clang,或者至少尝试确定问题是什么?作为一个说明,我试图用Visual Studio 2012构建,它由CMake正式支持,但在创建LLVM 3.1和Clang 3.1时未发布。
编辑:下面是的CMakeLists.txt
message(STATUS "Constructing LLVMBuild project information")
execute_process(
COMMAND ${PYTHON_EXECUTABLE} ${LLVMBUILDTOOL}
--native-target "${LLVM_NATIVE_ARCH}"
--enable-targets "${LLVM_TARGETS_TO_BUILD}"
--enable-optional-components "${LLVMOPTIONALCOMPONENTS}"
--write-library-table ${LLVMCONFIGLIBRARYDEPENDENCIESINC}
--write-cmake-fragment ${LLVMBUILDCMAKEFRAG}
ERROR_VARIABLE LLVMBUILDOUTPUT
ERROR_VARIABLE LLVMBUILDERRORS
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE LLVMBUILDRESULT)
# On Win32, CMake doesn't properly handle piping the default output/error
# streams into the GUI console. So, we explicitly catch and report them.
if(NOT "${LLVMBUILDOUTPUT}" STREQUAL "")
message(STATUS "llvm-build output: ${LLVMBUILDOUTPUT}")
endif()
if(NOT "${LLVMBUILDRESULT}" STREQUAL "0")
message(FATAL_ERROR
"Unexpected failure executing llvm-build: ${LLVMBUILDERRORS}")
endif()
这里所需的线,你可以看到,${LLVMBUILDRESULT}
不好,但${LLVMBUILDERRORS}
这显然应该包含生成错误不包含任何东西。
首先,我非常确定你确实需要Python 2.x,所以3.3不会工作,即使文档没有明确地说明这一点。 (但是我可能是错的,clang发展得非常快......)除此之外,是什么让你认为这个错误与Python有什么关系?你展示的信息中没有提到任何Python;它是指“配置”。 (你有'CMakeLists.txt'在你面前,所以你可以看看第307行,看看它在做什么。) – abarnert
其次,你是否尝试用Python 3.3进行配置,然后卸载并安装Python 2.7并尝试构建没有清理和重新配置?因为它可能会让人困惑它是否可以使用Python。当系统同时发生变化时,大多数配置系统在“恢复”配置时都不好。 – abarnert
最后,正如您链接的文档要明确说明的那样,只有在您将运行测试时才需要Python。如果你计划攻击Clang或LLVM(而不是仅仅使用它们),或者如果你已经安装了一个安装程序,但你遇到了神秘的故障,那么你想运行测试。但除此之外,你不需要。那么,为什么不直接不用Python配置呢? – abarnert