0

JavaでリモートコントロールにアクセスするためにJLircを使用しています。ソケットを介してlircに接続するためにネイティブメソッドを使用します。残念ながら、JLirc の最後の更新は 15 年前であるため、64 ビット システムはサポートされていません。

そこで、lirc に接続するためのソケットを作成する別の方法を提供してくれる JUDS に目を向けました。

標準的な C メソッドと思われるものを使用して、Java ( libunixdomainsocket-linux-x86_64.so) を介してアクセスされるライブラリをコンパイルします。を使用して構成ファイルを作成し、を使用autoconfしてメイクファイルを作成しました./configure

ここで を実行するmakeと、次のエラーが表示されます。

/usr/bin/javah -sourcepath . -o com/etsy/net/UnixDomainSocket.h com.etsy.net.UnixDomainSocket
gcc -g -O2 -shared -fPIC -I /usr/include -I /usr/include/linux -I /usr/lib/jvm/java-7-openjdk-amd64/include -m32 -o libunixdomainsocket-linux-i386.so com/etsy/net/UnixDomainSocket.c 
In file included from /usr/include/stdio.h:74:0,
                 from /usr/lib/jvm/java-7-openjdk-amd64/include/jni.h:39,
                 from com/etsy/net/UnixDomainSocket.h:2,
                 from com/etsy/net/UnixDomainSocket.c:6:
/usr/include/libio.h:306:3: error: unknown type name ‘size_t’
   size_t __pad5;

この質問を読んで、含める<stddef.h>と役立つと思います。ただし、コンパイルしようとする .c ソース ファイルに行を追加#include <stddef.h>しても役に立ちません。

これを修正するために何ができるか考えていますか?

  • JUDS をコンパイルして .so ファイルを取得する方法を見つける
  • JavaでLinuxソケットに接続するためのJUDS以外の方法を見つける
  • Javaを介してlircに接続するためのJLirc以外の方法を見つける
4

0 に答える 0