1

Windows から Linux の世界に引っ越しました。環境が違うので、すべてが初めてです。

とにかく、私は APUE の本を勉強していて、gcc で mutilthread コードをコンパイルしようとしました。

コードはpthread_create関数を使用し、含まれていますpthread.h

pthread_create含めたのに関数が宣言されていないというエラーメッセージが表示されました<pthread.h>

-pthread私はそれをグーグルで検索し、コンパイル時にオプションを設定しているという答えを得ました。お気に入りgcc -pthread blah.c

その後、コンパイルして正常に動作します。

しかし、私は-pthread実際に何をするのだろうか。「pthreadヘッダーファイル」を含めているのに、なぜこれをしなければならないのか

ありがとう!

4

1 に答える 1

0

コードにいくつかのファイルを含めるのは効率的ではありません。おそらく、バイナリで実装されたコード (Windows の DLL のようなもの) であるいくつかの準備済みライブラリをリンクする必要があります。そのため、このエラーに直面しました。gcc に -pthread フラグを使用すると、オブジェクトが lpthread ライブラリに自動的にリンクされ、プリプロセッサ タスクが実行されます。以下のリンクを参照することをお勧めします。便利だと思います。

gcc - コンパイル時の -pthread フラグの意味

于 2013-11-28T15:53:29.350 に答える