我正在尝试使用 Microsoft C++ 2013 在 Windows 7 上构建 LLVM/Clang。构建LLVM在此过程中吐出了一些错误消息,但大多数似乎都成功了,并且最终创建了一个充满exe的文件夹,因此该部分似乎已经起作用。当我尝试构建 Clang 时:
C:clang>CMakebincmake.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,在 CMakeList 中定义它.txt还是环境变量而不是命令行,将其设置为可能相关的/llvm 等子目录,我都会收到相同的错误消息。
我错过了什么?
您没有正确按照本页上"使用 Visual Studio"下的说明进行操作。你最终会得到
//llvm /llvm/CMakeLists.txt /llvm/tools/clang /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 生成文件"。无论如何,关键是您应该在顶级CMakeLists.txt
文件上调用cmake
,而不是直接在 clang 上调用。Clang将作为构建过程的一部分进行构建。您甚至可以将libc ++和compiler-rt添加到llvm/projects
目录中,以便在支持它们的平台上自动构建它们。
你正在做的是"用树"建造叮当声。这是可能的,甚至是受支持的,但只有在某些情况下才真正有用。您需要在某个目录中使用以前构建的 LLVM 版本。然后,将CLANG_PATH_TO_LLVM_BUILD
设置为包含构建的 LLVM 文件的目录(这不是源目录)。但正如我所说,这让事情变得不必要地困难。