2012-04-09 6 views
1

MakefileでLDFLAGSとリンクする際にライブラリの名前を知る方法はありますか?例えばMakefile内のライブラリの適切なLDFLAGを見つけるには?

libxml2.dylibが実際にそれらのフラグが指定されている-lz

とリンクされたzlibを命名された-lxml2

libz.dylibとリンクされていますか?誰がそれらをどのように見ますか?

+2

先頭の 'lib'と末尾の' .dylib'を外し、先頭の '-l'を付加:詳細はgcc man pageを参照してください。何がそんなに混乱しているのか、それについて一貫性がないのですか? –

答えて

2

慣習的に、先の 'lib'をライブラリファイル名から削除します。呼ばれるライブラリファイルの場合は、「libmyspecial_library.so」、対応するフラグは次のとおりです。

-lmyspecial_library 

これは実際には、GCCコンパイラで慣例です。

-llibrary 
     Use the library named library when linking. 

     The linker searches a standard list of directories 
     for the library, which is actually a file named 
     `liblibrary.a'. The linker then uses this file as 
     if it had been specified precisely by name.... 
関連する問題