LLVM构建:从工作构建复制的源

时间:2015-01-12 12:30:05

标签: makefile cmake llvm

我正在尝试使用另一台计算机上的工作副本构建LLVM。原始来源是使用configuremake构建的。但是,在新系统上,相同的构建方法失败(我尝试过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!

4 个答案:

答案 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源代码中复制丢失的文件。