問題タブ [linker-flags]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
324 参照

c - 基本的な GCC フラグに関するいくつかの質問

Cプログラムをコンパイルして実行しようとしています。プログラムはスレッドを使用します。UbuntuターミナルでWSLを使用してWindows 10を実行しています。(Ubuntu仮想ボックスでも試しています)これは、すべてのプログラムで使用している「デフォルト」のMakefile形式です(それぞれの名前とフラグを変更しています)

Cでスレッドを使用するのはこれが初めてで、-pthreadを発見しました。フラグに追加する必要があることがわかりました(これはCFLAGSで行いました)。何らかの理由で、このメイクファイルを上記で実行すると、pthread 関数が見つからないというエラーが発生し、次の行を変更して修正する方法があることに気付きました。

最後に pthread を追加します。これらすべてにより、フラグ全般についていくつかの調査を行うようになり、gcc のマニュアルページとグーグルを検索した後、これらの質問に対する簡単な答えが見つかりませんでした。

  1. -pthread を .o タスクと .c タスクに追加する必要があるのはなぜですか? 1つだけに追加するだけでは「十分」ではないのはなぜですか?
  2. -w フラグとは何ですか? 「警告」の略であることは知っていますが、-w と -Wall の違いは何ですか?
  3. -Iとは。国旗?繰り返しますが、「インクルード」の略であることがわかりましたが、それが何をしているのかわかりません..私のメイクファイルは、そのフラグの有無にかかわらず機能します。

ありがとうございました。

0 投票する
1 に答える
46 参照

makefile - リンカー (LD) パラメータとは何を意味しますか?

私は NASM (netwide assembler) プログラムを書いていますが、何らかの理由で C で書かれたいくつかの関数を使用する必要がありました。そこで、 ldリンカーを使用して、コンパイル済みの C オブジェクト ファイルとコンパイル済みの Assembly オブジェクトをリンクしようとしました。私はこのようにしました:

ld -m elf_x86_64 -lc --dynamic-linker=/lib64/ld-linux-x86-64.so.2 object_files -o program.

そして、必要なパラメーターを取得するまで、リンクして十分に長く動作することを望んでいませんでした。これで、このパラメーター セットで期待どおりに動作するようになりました。-lcしかし、との意味がわかりません--dynamic-linker=/lib64/ld-linux-x86-64.so.2。彼らは何をしますか ?