2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[clang,llvm] clang・llvm開発時のリンクオプションの簡単な見分け方

Posted at

clang/llvmのC++APIを叩く時のコンパイルオプションの設定は意外と面倒である。
特にclangを使いたい時はllvm-configは役に立たないし、リンク順序などはかなり深くclangの開発に携わっていないと理解不能である。

最も簡単な調べ方はclangのmake時のコンパイルオプションを見る事である。
一度ビルドしたllvm/clangのRelese(またはDebug+Assertions等)フォルダからclangのbinファイルを消して、make -nすればよい。

clangのビルドは普通は
LLVM_BUILD_DIR/tools/clang/tools/driver/
にあるmakefileで行われる。
なので、このディレクトリでmake -nすればコンパイルコマンドが見られる。

私の環境では
-lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangRewriteFrontend -lclangRewrite -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangARCMigrate -lclangAnalysis -lclangEdit -lclangAST -lclangLex -lclangBasic
-lLLVMOption -lLLVMObjCARCOpts -lLLVMLinker -lLLVMIRReader -lLLVMipo -lLLVMVectorize -lLLVMInstrumentation -lLLVMBitWriter -lLLVMAsmParser -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMScalarOpts -lLLVMProfileData -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMX86Desc -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMMC -lLLVMX86Utils -lLLVMCore -lLLVMSupport -lz -lpthread -ltinfo -lrt -ldl -lm
がリンク用のオプションであった。
これに llvm-config --cxxflagsのコマンドとリンクフォルダ指定オプション(-L/LLVM_CLANG_LIB_DIR/)を足せばうまくいく。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?