
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。
私はいまC言語をgeanyを使ってプログラミングしています
そしてこのコードを書いてコンパイルすると
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "hacking.h"
int main(void)
{
int i, recv_length, sockfd;
u_char buffer[9000];
if((sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_TCP)) == -1)
fatal("ソケットが生成できませんでした。");
for(i = 0; i < 3; i++){
recv_length = recv(sockfd, buffer, 8000, 0);
printf("%d バイトのパケットを取得しました。\n", recv_length);
dump(buffer, recv_length);
}
}
'dump'に対する定義されていない参照です
と出てエラーになってしまうのですが
なにか解決方法はございませんでしょうか?
オフライン
C 言語では、関数などを使用する際には、同じファイル内のそれ以前で定義、宣言が必須です。
同じファイル内には #include でインクルードしたファイルも含みます。
本質問の場合だと、提示のソースが一つのファイルになっていると思いますが、そのファイル中で dump() 関数が定義、宣言されていません。
そうなると、#include でインクルードしているファイルのどれかで定義、宣言されていなければいけません。
何を参考にして本質問のコードに至ったかは分かりませんが、参考元では dump() 関数を別の場所で定義、宣言してあり、それを書いたファイルをインクルードしていたのではないでしょうか。
オフライン