gccの代わりにldリンカーをいつ使うべきか知りたい。私はちょうどC++で単純にこんにちはの世界を書いた、もちろん私はiostreamライブラリが含まれています。 gccでバイナリファイルを作成したいのであれば:gccではなくldを使うべきですか?
g++ hello hello.cpp
私はバイナリファイルを持っています。
後でldリンカーを使用しようとしています。オブジェクトファイルを取得するには、 g++ -c hello.cpp
を使用します。それは簡単でしたが、リンクコマンドはひどいものでした:
ld -o hello.out hello.o -L /usr/lib/gcc/x86_64-linux-gnu/4.8.4/ /usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtbegin.o /usr/lib/gcc/x86_64-linux-gnu/4.8.4/crtend.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o /usr/lib/x86_64-linux-gnu/crt1.o -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lstdc++ -lc
。
gcc
はldを使用しています。 gcc
を使用すると、すべてのケースで優れていますか、ほとんどの場合のみですか? ldリンカが優位に立っているケースについて何らかの理由で教えてください。
リンカを直接使用すると、GCCを使用していない場合にのみ利点が得られます。さもなければ、 'gcc'や' g ++ 'を使って、多くのタイプの入力を保存し、より重要なのはあなたが入力する必要があるものとそのタイミングを正確に把握することです。 –
ありがとう、私はldの役に立つ使い方に気付かなかったことを恐れていました。 Btwあなたはリンクする必要がある
g++ -v -o hello hello.cpp
ライブラリを使用することができます。だから、リンクファイル/ liberriesに関するすべての機能、私はgccを使用して設定できますか? – Ice問題は、使用するGCCオプション、使用しているOS、GCCのバージョン、その他の要因によってオブジェクトファイル、ライブラリ、およびオプションのリストが変わることです。 'gcc -o hello hello.o'のようなコマンドを使って、GCCで作成したオブジェクトファイルをリンクすることができます。 –