问题 如何构建clang / examples / PrintFunctionNames?


我需要一些简单的例子来开始使用clang。 我下载了llvm和clang并构建了:

mkdir llvm-build
cd llvm-build
../llvm/configure
make

我试图从clang示例构建PrintFunctionNames,但收到一条错误消息:

../../../../Makefile.common:61:../../../../Makefile.config:没有这样的文件或目录 ../../../../Makefile.common:69:/Makefile.rules:没有这样的文件或目录 使: * 没有规则来制作目标`/Makefile.rules'。停止。

自述文件说只需要make。 那么如何构建这个插件呢?


2888
2018-06-07 13:07


起源



答案:


进入llvm-build / tools / clang,运行“make BUILD_EXAMPLES = 1”。


9
2018-06-08 02:08



我在llvm构建目录中找不到llvm-build / tools。它只有bin,include,lib。分享?有人可以帮忙吗? - G Gill
我认为他的构建目录名为llvm-build。我在这个问题上添加了我的回复,见下文。 - iwasz


答案:


进入llvm-build / tools / clang,运行“make BUILD_EXAMPLES = 1”。


9
2018-06-08 02:08



我在llvm构建目录中找不到llvm-build / tools。它只有bin,include,lib。分享?有人可以帮忙吗? - G Gill
我认为他的构建目录名为llvm-build。我在这个问题上添加了我的回复,见下文。 - iwasz


最确定的是,您将获得LLVM中继线检查,并在工具路径下检查Clang中继线[在建筑物Clang via下解释 http://clang.llvm.org/get_started.html

Makefile构建指南: http://llvm.org/docs/MakefileGuide.html

在OS X上,构建设置有点不同,但在Debian Linux上,我每天都在构建它,如下所示:

../trunk/configure --enable-target = x86_64,arm,cpp,cbe --with-built-clang --enable-pic --enable-polly --enable-shared --with-cxx-include-arch = x86_64 --enable-optimized --with-optimize-option = -Os --enable-assertions --disable-bootstrap --disable-multilib --enable-jit --enable-threads --no-create --no -recursion

然后在我的Pentium D 945系统的命令上应用make -j(n + 1个内核):

使[反对 自动工具 make -j(n + 1)并不总是干净地构建llvm cmake的。因此,如果要运行所有核心,可以预期多次运行make -j(n + 1)以获得干净的构建。

无需访问多个核心的标准表单:

make BUILD_EXAMPLES ='1'//阅读下面的注释

总是导致干净的构建,如果它没有向LLVM报告错误。

注意:如果您处于顶层,则可以按如下方式更新llvm trunk,project-test trunk和clang trunk:

做树干

然后再次运行make,因为提前配置了BUILD_EXAMPLES = 1。

make BUILD_EXAMPLES ='1'

注意:Autotools将允许一个配置BUILD_EXAMPLES ='1',但如果在命令行上make后没有明确包含BUILD_EXAMPLES ='1',则在运行make时将忽略该标志。

在LLVM树的顶部,你构建了反对运行make BUILD_EXAMPLES ='1'将构建LLVM特定的示例,然后进入build / tools / clang路径,然后必须再次运行make BUILD_EXAMPLES ='1'来构建Clang示例。

因此:

LLVM热门:

对于LLVM示例,请使用BUILD_EXAMPLES ='1'//  cd tools / clang  对于Clang特定示例,请使用BUILD_EXAMPLES ='1'//

验证在/ usr / local / bin下安装LLVM和/ usr / local / lib / for Clang的示例。

如果使用CMAKE,则二进制示例的默认位置位于/ usr / local / examples下


2
2017-08-25 06:55





我按照说明进行操作 http://clang.llvm.org/get_started.html 有两个例外:

  1. 我的构建目录在源目录(即cd llvm; mkdir build)中,但我不认为它是相关的。
  2. 我发布了cmake:

    cd build

    cmake -DLLVM_BUILD_EXAMPLES = 1 -DCLANG_BUILD_EXAMPLES = 1 ..

在那之后(并编译当然(make -j8))我可以在build dir中找到这些例子:

find -iname '*printfunctionname*'
./lib/PrintFunctionNames.so
...

1
2017-09-18 07:34



这对我来说非常有用。 - Niels Lohmann


我昨天试着做类似的事: 使用clang获取类中的方法列表 并成功了。也许我的帖子在这里也有帮助。我最好的帮助就是这个 AST Matchers教程


0
2018-02-21 09:10