LLVM构建:从工作构建复制的源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LLVM构建:从工作构建复制的源相关的知识,希望对你有一定的参考价值。
我正在尝试从另一台机器上的工作副本构建一个LLVM。原始来源是使用configure
和make
构建的。但是,在新系统上,相同的构建方法失败了(我尝试过make clean
)。我尝试了cmake
选项,它说如下:
基本上似乎有一些遗留在早期版本中的文件,所以问题是如何删除它,优雅,即不使用linux命令,而是使用LLVM构建系统本身。 make distclean
说“没有规则可以制造目标`disctclean'。停止。”
-- 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!
LLVM构建系统不提供此问题的解决方案。您可以从头开始使用干净的源代码或使用一些Linux shell voodoo来摆脱所有.gen
文件。
这就是为什么我们在这里的指示中使用单独的构建目录的一个原因:
http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary
最简单的方法是使用一组干净的源重新启动,并避免在源目录中使用configure和make。
如果您使用源代码管理检查了源代码,则可以使用它来删除所有未跟踪的文件并重置所有已修改的文件。
只需删除提到的文件:
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
然后再次运行make或cmake或ninja。如果它抱怨文件丢失,则从原始LLVM源代码中复制丢失的文件。
以上是关于LLVM构建:从工作构建复制的源的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上使用 MINGW 构建 clang?
怎样构建一个不依赖gcc/binutils的llvm/clang Linux工具链