2011-12-30 6 views
1
上記のコードは、常に次のエラーでコンパイルに失敗し
#include <netlink/socket.h> 
#include <netlink/netlink.h> 
struct nl_sock *sock; 

sock = nl_socket_alloc(); 

: /home/micah/Documents/C++/Socket_fun/Socket_fun/src/main.cpp|5|errorを:「靴下」タイプを指していないどのようにlibnl nl_sockを使用しますか?

私はlibnlのサンプルからこれを手に入れました。うまくいかないので、これを行う正しい方法は何ですか?

+0

私は代わりに* libmnl *をお勧めします。特に、Netlinkの学習段階では非常に簡単です。 –

+0

私はそれを行うかもしれませんが、私はinet_diagモジュールを使用しようとしているので、私は古いsocket()メソッドに切り替えていますので、コピーして貼り付けて、ssネットワークユーティリティから調整することができます –

答えて

3

このコードは、関数内でなければならない、あなただけの関数のコンテキスト外の関数を呼び出して起動することはできません。

int main() 
{ 
    struct nl_sock *sock; 
    sock = nl_socket_alloc(); 
} 

また、あなたが何をコンパイルしていますか? C++ではなくC言語としてコンパイルすることをお勧めします。

+0

それを考え出して、激しい何かを私に襲っていた。迅速な答えをありがとう。 Cと同様に、C++でなければならず、C++プロジェクトの一部です。 –

関連する問題