我正在尝试使用另一台计算机上的工作副本构建LLVM。原始来源是使用configure
和make
构建的。但是,在新系统上,相同的构建方法失败(我尝试过make clean
)。我尝试了cmake
选项并说明了以下内容:
基本上似乎有一些遗留在早期版本中的文件,所以问题是如何删除它,优雅,即不使用linux命令,而是使用LLVM构建系统本身。 make distclean
说“没有规则可以使目标'消除''。停止。”
-- The C compiler identification is AppleClang 6.0.0.6000056
-- The CXX compiler identification is AppleClang 6.0.0.6000056
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:57 (message):
Apparently there is a previous in-source build,
probably as the result of running `configure' and `make' on
/Users/me/scp/llvm_release.
This may cause problems. The suspicious files are:
/Users/me/scp/llvm_release/lib/Target/AArch64/AArch64GenAsmWriter.inc;
...
...
/Users/me/scp/llvm_release/lib/Target/XCore/XCoreGenSubtargetInfo.inc
/Users/me/scp/llvm_release/include/llvm/IR/Intrinsics.gen
Please clean the source directory.
-- Configuring incomplete, errors occurred!
答案 0 :(得分:1)
LLVM构建系统不提供此问题的解决方案。您可以从头开始使用干净的源代码或使用一些Linux shell voodoo来删除所有.gen
文件。
答案 1 :(得分:0)
这就是为什么我们在这里的指示中使用单独的构建目录的原因之一:
http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary
最简单的方法是使用一组干净的源重新启动,并避免在源目录中使用configure和make。
答案 2 :(得分:0)
如果您使用源代码管理检查了源代码,您可以使用它来删除所有未跟踪的文件并重置所有已修改的文件。
答案 3 :(得分:0)
只需删除上述文件:
outLink == null
然后再次运行make或cmake或ninja。如果它抱怨文件丢失,则从原始LLVM源代码中复制丢失的文件。