- ベストアンサー
エラー 未解決の外部シンボル
プログラム初心者です。 以下のエラーが出て解決方法がわからず困っております。ご存知の方宜しくお願いします。 エラー 1 error LNK2019: 未解決の外部シンボル __imp__ntohs@4 が関数 "void __cdecl packet_print(unsigned char *,struct pcap_pkthdr const *,unsigned char const *)" (?packet_print@@YAXPAEPBUpcap_pkthdr@@PBE@Z) で参照されました。 main.obj エラー 2 fatal error LNK1120: 外部参照 1 が未解決です。 C:\Documents and Settings\谷本\My Documents\Visual Studio 2005\Projects\Packetmoni_Base\Debug\Packetmoni_Base.exe
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
環境を明記しましょう。 それとどんなコードを書いてそのような結果になったか記述しないと 思ったような回答が得られないかもしれません。 packet_print関数で定義のない関数(おそらくntohs関数)を呼ぼうとしています というよなエラーメッセージなので、適切なライブラリファイルをリンクさせてください。 ntohs http://msdn.microsoft.com/en-us/library/ms740075(VS.85).aspx より >Library Ws2_32.lib
その他の回答 (1)
- Alice022
- ベストアンサー率37% (3/8)
エラー1はVisual Studio 2005でコンパイルした際にpacket_print関数を参照しようとしていますが、呼び出すための「定義が見つからないよ」と怒られています。 エラー2はエラー1によってEXEファイルが未完成であるということです。エラー1が解決すれば無くなるはずです。 なので、packet_print関数が定義されているライブラリ、静的リンクであればLibファイル、動的リンクであればdllファイルを追加すれば解決するのではと思います。 …\Projects\Packetmoni_Base配下のフォルダに色々ライブラリのファイルがある?のではないでしょうか。
お礼
エラー1の解決でエラー2も解決しました。 ありがとうございました。
お礼
ws2_32.libをリンクさせることで解決致しました。 助かりました。ありがとうございました。
補足
恐れ入ります。ntohs調べてみます。 環境 WinXP SP3 Visual Studio 2005 Winpcap C,C++ 以下のコードを追加後、コンパイルすると上記のようなエラーが出ました。 /*** イーサネットフレームの種類を表示 ***/ printf("%x\n", ntohs(((struct ether_header *)p)->ether_type));