[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:35586] Re: RubyのUCD-SNMPモジュール



おおやと申します。
自己解決できたようです。

再度よくよく追いかけたところ、コメントアウトを一箇所外すことで
コンパイルは通りました。

略
> /usr/include/ucd-snmp/system.h:79: parse error before `get_myaddr'
> /usr/include/ucd-snmp/system.h:79: warning: data definition has no type or storage class
略

以下、やった作業の覚え書きです。
-----------------------------------------------------------------
/usr/include/ucd-snmp# grep get_myaddr system.h
in_addr_t get_myaddr (void);
-----------------------------------------------------------------
/usr/include/ucd-snmp# grep in_addr_t ./*
./system.h:in_addr_t get_myaddr (void);
./ucd-snmp-config.h:/* type check for in_addr_t */
./ucd-snmp-config.h:/* #undef in_addr_t */
./ucd-snmp-includes.h:/* uncomment if you don't have in_addr_t in netinet/in.h */
./ucd-snmp-includes.h:/* typedef u_int in_addr_t; */
-----------------------------------------------------------------
/usr/include/ucd-snmp# vi ucd-snmp-includes.h
-----------------------------------------------------------------
/usr/include/ucd-snmp# grep in_addr_t ./ucd-snmp-includes.h
/* uncomment if you don't have in_addr_t in netinet/in.h */
typedef u_int in_addr_t;
-----------------------------------------------------------------

原因は "in_addr_t が定義されていなかった" ということらしいので、
ucd-snmpのヘッダファイルの記述
 原文: /* uncomment if you don't have in_addr_t in netinet/in.h */
 超訳: /* netinet/in.h の中に in_addr_t が無かったら uncomment してね */"
に従ってコメントアウトされていた部分を有効にしてみたら、コンパイルが
進みました。

(おまけ)
コンパイルは通りましたが、 netinet/in.h を探してみたら
/usr/include/netinet/in.hの中で、
-----------------------------------------------------------------
/usr/include/netinet# grep in_addr_t in.h
typedef uint32_t in_addr_t;
以下略
-----------------------------------------------------------------
という形で定義されていました。

Debian的な疑問ではありませんが、なぜこれが利用されなかったのかが
わかりません。