![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
UNIXでサーバー、クライアントのCプログラミングをテキストどおりに書いてコンパイルしたのですが、以下のエラーが出ます。gcc, ccでコンパイルすると以下のようになるのですが、これはどういうことなのでしょうか?何が原因なのでしょうか?よろしくお願いいたします。
gcc unix_server.c
/var/tmp/ccvpay1f1.o: In function `main':
/var/tmp/ccvpay1f1.o(.text+0x8c): undefined reference to `socket'
/var/tmp/ccvpay1f1.o(.text+0x104): undefined reference to `unllnk'
/var/tmp/ccvpay1f1.o(.text+0x118): undefined reference to `bind'
/var/tmp/ccvpay1f1.o(.text+0x150): undefined reference to `listen'
/var/tmp/ccvpay1f1.o(.text+0x1a8): undefined reference to `accept'
cc unix_server.c
ld:
/usr/lib/cmplrs/cc/crtn.o: Error: Unresolved:
rindex
socket
bzero
bcopy
unllnk
bind
listen
accept
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67b6d)
No.5ベストアンサー
- 回答日時:
あなたのソースからsockect,bindなどのプログラムを呼び出しています。
これらはソケットライブラリと呼ばれるもので、これを使用するときには、このライブラリを明示的にリンクする必要があります。
そのために、-l socket の指定を行います。
そうすると libsocketというライブラリをリンクしてくれます。また libsocket自体が、libnslを呼び出している為に、-l nslの指定も行う必要があります。
一般的には #4の方が言われているように -l XXX は
libXXXを明示的にリンクすることを示します。
TCP/IP等でソケットライブラリを使用する場合(=今回のような場合)は、必ず
-lsocket -lnsl を指定する必要があると覚えておいて下さい。
No.4
- 回答日時:
> -lsocket -lnslとはどういう意味なのでしょうか?
-lXXX とは libXXX という名前を持つライブラリをリンクせよ、という意味になります。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67b6d)
No.3
- 回答日時:
ソケットライブラリ関連がリンクできてないですね。
gcc -lsocket -lnsl unix_server.c
と打って下さい。
No.2
- 回答日時:
.oファイルやld(リンカ)でのエラーなので、ソケット関係のライブラリが見つからないということだと思います。
。コンパイル時のライブラリの指定を確認・指定してみてください。
No.1
- 回答日時:
main関数内に定義されていないものが出てきたぞ!!
ということですね
undefined ~ の後の'socket'etcがないといっています。
ヘッダファイルは定義してますか?
コンパイル時の環境に問題はありませんか?
見直してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコン
-
大量のデータを読み込んで表示...
-
[C言語]fputsとfprintfの違い
-
ArduinoでMouse関数を使用して...
-
C言語って古いですか?
-
逆コンパイルと逆アセンブルの...
-
C言語の関数と配列に関する質問
-
VisualStudioで、コードを印刷...
-
c#のTLS1.2での通信について
-
c言語でイベントフラグを使った...
-
今ってプログラミング言語は何...
-
C言語をコンパイルするとコンピ...
-
gccを行ってもexeファイルが生...
-
c言語
-
C言語 バッファについて。
-
VisualStudioでC++クラスを追加...
-
変数のスコープ
-
Windows Formアプリからコンソ...
-
私は
-
パソコン
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX上のプログラムで使うライ...
-
拡張子.niiのファイルの開き方...
-
.NET(C#)でのスタックオーバー...
-
オブジェクトライブラリ
-
DXライブラリの画像の表示の仕...
-
Excel VBA のstr()関数でエラー
-
MakefileのLDLIBSとLOADLIBESの...
-
ライブラリParamQuery gridにつ...
-
pthreadのソースの入手方法
-
Googlemapのように画像を拡大・...
-
ライブラリ内の処理中における...
-
QRコード作成ライブラリ
-
ライブラリとAPIについて
-
Unsatisfied code symbol エラ...
-
自作ライブラリの作成方法
-
コンパイル時のエラー
-
C++BuilderやDelphiでVC++用の...
-
PDFファイルの文字を取得するプ...
-
windows media playerでdropbox...
-
jpegのバイナリデータを見る方法
おすすめ情報