背景
對于如何編寫第一個LLVM Pass不作贅述,詳見LLVM官網(wǎng)給出的文檔。
現(xiàn)在的問題主要是,文檔上給出的示例是放在LLVM源文件夾下,編譯的話容易污染LLVM原始的庫。那么如何將自己在獨立目錄下編寫的Pass編譯成.so文件,然后通過opt命令加載后進行使用呢?
獨立目錄編譯Pass
在終端輸入如下命令:
$ `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文件。
其他
更多l(xiāng)lvm-config具體參數(shù)參見:llvm-config的官方介紹