1つのソースファイルのmain()メソッドで、次のようにpthread_create()を呼び出します。
pthread_t pth_chanrecv;
pthread_create(&pth_chanrecv, NULL, chanrecv_run, NULL);
「chanrecv_run」は、私が書いた別のソースファイルの関数です。
これは関数プロトタイプです:
void *chanrecv_run(void *arg);
関数プロトタイプは、main()メソッドを含むソースファイルにインクルードしたヘッダーファイルにあります。
私は次のステートメントでプログラムをコンパイルしています:
gcc -lpthread -o bin/main2 src/main2.c
chanrecv_run()関数は、「chanrecv.c」という名前のファイルにあり、これもsrcフォルダーにあります。
コンパイルしようとするたびに、次のエラーが発生します。
/tmp/ccHxRSTk.o: In function `main':
main2.c:(.text+0x256): undefined reference to `chanrecv_run'
collect2: ld returned 1 exit status
何が悪いのかわかりません。pthread_create関数を使用して別のファイルにある関数を呼び出そうとしている誰かの別のインスタンスを見つけようとして、Webを精査し、完全に空白になりました。これも可能ですか?もしそうなら、どのように?