1. ホーム
  2. c

[解決済み] c - 初期化でポインタから整数を作るのにキャストを使わず、さらに2つのコンパイラーエラーが発生。

2022-02-07 20:33:05

質問

という警告が表示されるのですが。

initialization makes integer from pointer without a cast

を次のようなコードに置き換えます。

void receive(u_char *args, const struct pcap_pkthdr *pkthdr, const u_char *buffer)

{

const int one = 1;

int LEN = args;      /* THIS IS THE LINE */

struct ipheader *ip;

struct tcpheader *tcp;

という検索結果が返ってくるので、正直なところ、初心者の私はどうしたらいいのかわかりません。 makes pointer from integer .

また、このようなコンパイラーメッセージが表示されるのですが。

/tmp/cci6u7NH.o: In function `main':
ChannelBunny.c:(.text+0x448): undefined reference to `pthread_create'
ChannelBunny.c:(.text+0x4b7): undefined reference to `pthread_join'
/tmp/cci6u7NH.o: In function `receive':
ChannelBunny.c:(.text+0xcb6): undefined reference to `nthol'
ChannelBunny.c:(.text+0xcdf): undefined reference to `nthol'
collect2: ld returned 1 exit status

を使用することで、同様の pcap の問題を取り除くことができました。 -l pcap が、他の2つではうまくいきませんでした。ただ返されるだけでした。

gcc: pthread: No such file or directory
gcc: nthol: No such file or director

何かダウンロードしなければならないのでしょうか、それとも別のコマンドを使用しなければならないのでしょうか。(私はBacktrack5を使用しています。)何か役に立つことがあれば教えてください。

解決方法は?

次のことを行う必要があります。

int LEN = *args;

argsはポインターで、*argsはそれが指す値です。また、u_charをintに入れるのはやめたほうがいいです。

ntholの場合。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms740069(v=vs.85).aspx