Cygwin GCC ile JNI DLL Derlenmesi

Windows altında cygwin gcc/g++ kullanarak JNI DLL’leri derlemek istediğinizde aşağıdaki sorunla karşılaşmanız mümkün.

/cygdrive/C/Program Files/Java/jdk1.6.0_07/include/win32/jni_md.h:16: error: '__int64' does not name a type

Bu sorun jni_md.h başlık dosyasındaki __int64 tipinin gcc/g++’da tanımlı olmamasından kaynaklanır.  Bu sorunu gidermek için __int64 tipini tanımlamak gerekiyor. Bu iki şekilde yapılabilir: gcc/g++’ya -D parametresi ile tanımı geçirerek:

-D__int64="long long"

veya jni_md.h başlık dosyasında değişiklik yaparak

#ifdef __GNUC__
  typedef long long jlong;
#else
  typedef __int64 jlong;
#endif

Leave a Reply