2012-01-17 45 views
0

私はWINSOCK.Hヘッダファイルを使用しようとしているが、私は以下のエラーのいずれかを取得:VS2010で (C++):gccのコマンドラインに未定義の参照/未解決の外部シンボル

Unresolved External Symbol to [the function included in winsock.g, e.g socket()] 

を( C):

Undefined Reference to [the function included in winsock.g, e.g socket()] 

コードは単純である:ちょうどWINSOCK.Hヘッダファイルを含む、次いで

SOCKET s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); 

socket() & closesocket()の機能にエラーが発生します...! 私はStackoverflowで検索し、これに関するいくつかのトピックを見つけましたが、彼らはすべてヘッダファイルの変更を提案しました。ここではWinSock.hを変更することはできませんので、ヘッダーファイルを使用する実際のコードで解決策が必要です。何か案は?

答えて

5

ドキュメントによれば、ws2_32.libが必要です。

[プロジェクト] - > [プロパティ] - > [リンカ] - > [その他の依存関係]に移動し、ws2_32.libを追加します。

EDIT:

プロジェクト - >プロパティ - >リンカー - >入力 - >追加の依存

+0

こんにちは。答えをありがとうが、私は追加の依存関係を見つけることができません。私は一般、入力、マニフェストファイル、デバッグ、システム、最適化、組み込みDLL、高度なコマンドラインを持っています。 – jzeus

+0

私はVisual Studio 2010を使用しています。 – jzeus

+0

リンクライブラリの依存関係と呼ばれるブール値プロパティが[全般]タブで[はい]に設定されています。 – jzeus

0

これらはリンカーエラーであり、コンパイルエラーではありません。 WinSockライブラリをリンクする必要があります。 gccのために、あなたのリンクのコマンドラインにライブラリを追加することを意味している:

gcc -Lpath/to/winsock/library -o myApplication myObject.o wsock32.lib 

私は、Visual Studioについては何も知らない、私は怖いが、this linkは役立つかもしれません。

+0

である必要があり、私はこれはgccの[App_To_Be_Compiled] -L [Winsockのライブラリへのパス]であると仮定しています - o [output_exe] – jzeus

+0

これは、コンパイルするたびにライブラリをリンクする必要があることを意味しますか、それとも永続的にリンクする別の方法ですか? – jzeus

+0

こんにちは。 gcc C:\ Socket.c -L C:\ Windows \ System32 \ wsock32.dll -o C:\ out.exe – jzeus

関連する問題