2017-01-09 51 views

回答

1

取决于你在做什么通正在做,你可以:

  • 建立与LTO:添加-flto到CFLAGS和建设有自己的内置连接插件应用程序是从构建系统点相当无缝看法。但是它需要了解如何设置LTO。
  • 使用您自己的内置铛声创建:将静态添加到LLVM管道并使用您自己的内置铛声。根据构建系统的不同,导出CC/CXX环境变​​量指向已安装的clang应该足够了。
  • 通过将您的通行证动态加载到叮当中来构建,例如,这是Polly(可选)正在执行的操作。
+0

谢谢Joky!所以我需要做这3个选项中的一个?前两种选择有没有现有的例子? –

+0

我不这么认为,但选项2不难设置,也许这​​是最少的。如果您有通行证,只需将其添加到PassManagerBuilder.cpp中的正确位置并构建叮。 – Joky

+0

所以我所做的就是编辑Makefile,并将clang和相关的标志替换为gcc/g ++,这样我的通行代码就可以工作。我的通行证通过添加一个函数调用该程序,该函数位于另一个.c文件中。但是我得到了来自clang的未定义参考错误。我在这里发布了这个问题: http://stackoverflow.com/questions/41650417/clang-linking-error-undefined-reference-to-function-calls-added-by-llvm-pass 你可以看一下吗?非常感谢! –

0

如果您将-emit-llvm添加到您的clang标志,它将发出BC文件而不是目标文件或LL文件而不是程序集。

你可能需要修改一下makefile文件,这会让你开始朝正确的方向发展。

+0

感谢您的回复。所以你认为我将不得不修改这些程序的现有Makefile,并用bc标志手动将gcc替换为clang?任何现有的工具? –

相关问题