Compiling JNI problems with JAWT
843829Jun 16 2008 — edited Aug 21 2008I'm at my wits end atm, I have tried everything i can think of. Would someone please help me compile this jni.
I'm trying to compile the code I found at http://today.java.net/lpt/a/52 under Native User Alerts for Windows. And nothing i do will compile. I have gotten a variety of errors from
/cygdrive/c/DOCUME~1/Amanda/LOCALS~1/Temp/ccEzHc8K.o:flash.c:(.text+0x21): undefined reference to `__imp__JAWT_GetAWT@8'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status
to
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x1b3): undefined reference to `__imp___iob'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x1ce): undefined reference to `__imp___iob'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x1df): undefined reference to `__imp___iob'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x1f2): undefined reference to `__imp___iob'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x265): undefined reference to `__imp___iob'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x276): more undefined references to `__imp___iob' follow
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x2c3): undefined reference to `__imp__atexit'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/crt2.o:crt1.c:(.text+0x2d3): undefined reference to `__imp___onexit'
/cygdrive/c/DOCUME~1/Amanda/LOCALS~1/Temp/ccXYHsOb.o:flash.c:(.text+0x21): undefined reference to `__imp__JAWT_GetAWT@8'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/lib/libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `_WinMain@16'
collect2: ld returned 1 exit status
to
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\CodeAnalysis\sourceannotations.h(69) : error C2059: syntax error : '['
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\CodeAnalysis\sourceannotations.h(100) : error C2059: syntax error : '['
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\CodeAnalysis\sourceannotations.h(131) : error C2059: syntax error : '['
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\CodeAnalysis\sourceannotations.h(143) : error C2059: syntax error : '['
c:\Program Files\Microsoft Visual Studio 9.0\VC\include\CodeAnalysis\sourceannotations.h(153) : error C2059: syntax error : '['
and many more similar
to
f:\Documents\Workspace\Hack 1.5\jni.h(21) : fatal error C1083: Cannot open include file: 'stdio.h': No such file or directory
which I would assume to be a missing include directive
I have set up some environment variable to help make things clearer
$ printenv JDK
C:\Program Files\Java\jdk1.6.0_05
$ printenv SDK
C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2
$ printenv MVS
C:\Program Files\Microsoft Visual Studio 9.0\VC
And I've been trying two different compilers in both cygwin and dos prompt
cl.exe \
/Z7 /Od /nologo \
-I"$JDK\\include" \
-I"$JDK\\include\\win32" \
-I"$MVS\\include" \
-I"$SDK\\include" \
flash.c \
-Feflash.dll \
-LDd \
-MD \
-link \
-libpath:"$SDK\\lib" \
-libpath:"$MVS\\lib" \
-libpath:"$JDK\\lib" \
jawt.lib user32.lib gdi32.lib
and also gcc
gcc -mno-cygwin \
-I"$JDK\\include" -I$"$JDK\\include\\win32" \
-L"$JDK\\lib" -L"$MVS\\lib" -L"$SDK\\lib" \
-Wl,--add-stdcall-alias \
-ljawt -lgdi32 -luser32 \
-o flash.dll flash.c
I would appreciate any help.
-Amanda