我正在尝试使用Microsoft C ++ 2013在Windows 7上构建LLVM / Clang。构建LLVM会沿途发出一些错误消息,但大多数似乎都是成功的,并且最终创建了一个充满exe的文件夹,因此该部分似乎有效。当我尝试建立Clang时:
C:\clang>\CMake\bin\cmake.exe ..\clang-3.4 -DCLANG_PATH_TO_LLVM_BUILD=/llvm
CMake Error at CMakeLists.txt:29 (message):
Please set CLANG_PATH_TO_LLVM_BUILD to a directory containing a LLVM build.
我得到相同的错误消息,无论是省略CLANG_PATH_TO_LLVM_BUILD,在CMakeLists.txt中定义它还是在环境变量而不是命令行中,将其设置为/ llvm等可能相关的子目录。
我错过了什么?
答案 0 :(得分:1)
您未在“使用Visual Studio”下正确遵循this page上的说明。你最终会得到
/ / LLVM /llvm/CMakeLists.txt / LLVM /工具/铛 /llvm/tools/clang/CMakeLists.txt
步骤4,为清楚起见,在此重复:
- 运行CMake以生成Visual Studio解决方案和项目文件:
醇>
cd ..\..
(回到你开始的地方)mkdir build
(用于建造而不污染源目录)cd build
- 如果您使用的是Visual Studio 2012:
cmake -G "Visual Studio 11" ..\llvm
最后一点需要从VS命令提示符内部运行,但是你似乎已经解决了这个问题。如果不使用IDE构建,也可以生成“NMake makefile”。无论如何,重点是你应该在顶级cmake
文件上调用CMakeLists.txt
,而不是直接在clang上调用llvm/projects
。 Clang将作为构建过程的一部分构建。您甚至可以将libc ++和compiler-rt添加到CLANG_PATH_TO_LLVM_BUILD
目录,以便在支持它们的平台上自动构建它们。
你正在做的是建立“树外”的铿锵声。这是可能的,甚至是支持的,但在某些情况下才真正有用。在某些目录中,您需要先前构建的LLVM版本。然后,将{{1}}设置为包含构建的LLVM文件的目录(这不是源目录)。但正如我所说,这使得事情变得毫无困难。