2013-04-04 24 views
5

は次のようにコマンドを送りましたか?gnu-makeの-lrtフラグは何ですか?そのコマンドで</p> <pre><code>gcc -static foo.so.0 bar.o bizz.o buzz.o -pthreads -lrt </code></pre> <p>、-lrtは何を意味するのDOS:GNU-makeプロセスのgmakeをの後の段階で

+0

librtとのリンク – david

+1

'-l' = link libraryだから、gccにこのコードをコンパイルする際に' rt'ライブラリを使うように指示しています。 –

+1

'-l'は' lib'で始まり '.a'または' .so'で終わるライブラリとのリンクを示します。 'rt'はリアルタイムを表します。 'librt'はリアルタイム拡張ライブラリです。 –

答えて

8

これはmakeとは関係ありません。 makeはそれ自身のようなフラグを決して追加しません。あなたのメイクファイルを書いた人は誰でもリンクラインにそのフラグを追加します。これはコンパイルコマンドであり、-lrtはコンパイラに渡されるフラグです。 -lフラグは、ライブラリとリンクする必要があることを指定しており、ライブラリの名前が続きます。だから-lrtは "rtライブラリとのリンク"を意味します。これにより、リンカーはlibrt.aまたはlibrt.so(共有ライブラリ用)という名前のライブラリを検索し、それらを出力ファイルとリンクさせます。

関連する問題