背景

对于如何编写第一个LLVM Pass不作赘述,详见LLVM官网给出的文档
现在的问题主要是,文档上给出的示例是放在LLVM源文件夹下,编译的话容易污染LLVM原始的库。那么如何将自己在独立目录下编写的Pass编译成.so文件,然后通过opt命令加载后进行使用呢?

独立目录编译Pass

命令

1
$ `llvm-config --bindir`/clang  -shared  -fPIC `llvm-config --cxxflags`  `llvm-config --ldflags`  test.cpp -o libtest.so

其中:
·llvm-config --bindir·/clang 表示clang的位置
llvm-config --cxxflags 列出llvm中的编译选项
llvm-config --ldflags 列出llvm中的链接选项
-shared-fPIC 是为了生成so文件。

其他

llvm-config的官方介绍