我正在尝试构建 LLVM 3.1 和 Clang 3.1。我遵循了入门指南铿锵的网站 http://clang.llvm.org/get_started.html- 检查必要位置的存储库,获取 Python 等。
如果我安装了 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}
显然应该包含构建错误但不包含任何内容。