ライブラリをリンクしようとするとコンパイルエラーが発生します。私のコンパイルコマンドに伴うエラーは次のとおりです。gccを-lと-Lとリンクするライブラリ
gcc snw-server.c -Wall -g -L\ -lpacketErrorSend -o snw-server
/tmp/cc7dekxv.o: In function `main':
/home/mike/CSCI446/project3/snw-server.c:113: undefined reference to `packetErrorSend'
collect2: error: ld returned 1 exit status
Makefile:5: recipe for target 'file' failed
make: *** [file] Error 1
最初に-Lコマンドについて少し混乱しました。ライブラリファイルは、他のすべてのファイルがあるカレントディレクトリにあります。ここに私のディレクトリにあるファイルがあります。
libpacketErrorSend.a Makefile packetErrorSend.h snw-client.c snw-server.c
、ここでは私のMakefileは私が.cファイルにpacketErrorSend.hを含むことを確認しました
file: snw-server.c snw-client.c
gcc snw-server.c -Wall -g -L\ -lpacketErrorSend -o snw-server
gcc snw-client.c -Wall -g -L\ -lpacketErrorSend -o snw-client
clean:
rm -f snw-server snw-client
次のようになります。私はライブラリを適切にリンクしているかどうかはわかりません。
packetErrorSend関数は、教師がsend(2)(ネットワーク)と同じ引数を使用するように構築されていますが、パケットを失います。これはsendを使って動作しますが、ライブラリをリンクして関数をpacketErrorSendに変更しようとするとコンパイルされません。
おかげで、 マイク
'-L \ -lpacketErrorSend' ??? => '-L。 -lpacketErrorSend' – Stargateur
現在のディレクトリは "\"で示されていません。 " – Scooter