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