Ok I managed to build jzmq with ming32.
I am pretty sure that I made unnecessary changes and messed some things up, but 
it seems to work. So perhaps someone who understands this process better can 
make more sense of it.

Steps I had to do:

* Download jzmq on linux

* Modify configure.in
28,30d27
< AC_PROG_LIBTOOL
< AC_PROG_SED
< AC_PROG_AWK
33a31,39
> AC_LIBTOOL_WIN32_DLL
> # AC_PROG_LIBTOOL
> LT_INIT([win32-dll])
> AC_PROG_SED
> AC_PROG_AWK
>
> # set JNI flags
> CPPFLAGS="$CPPFLAGS -D_JNI_IMPLEMENTATION_ -Wl,--kill-at"
> LDFLAGS="$LDFLAGS -D_JNI_IMPLEMENTATION_ -Wl,--kill-at"
109a116,118
>     *mingw32*)
>             CPPFLAGS="$CPPFLAGS -I${JAVA_HOME}/include/win32"
>     ;;

* Run ./autogen.sh on linux (to avoid autotools on mingw32)

* copy the whole directory to windows

* Move java JDK to a path without spaces. The configure script gets confused 
when it sees spaces in a directory path.

* copy libtool from my zeromq setup directory to my jzmq setup directory 
(somehow the standard libtool with mingw32 does not work)

* in libtool there is a section specific to allow_undefined for different host 
systems. For mingw change "allow_undefined=yes" to "allow_undefined=no"

* Run ./configure

* In the three Makesfiles that it produces (on in ., one in ./src and one in 
./perf) fix some slashes (some backslashes sneaked in there which blow up the 
make)

* make

* make install


From: [email protected] 
[mailto:[email protected]] On Behalf Of Koert Kuipers
Sent: Monday, December 27, 2010 2:52 PM
To: ZeroMQ development list
Subject: Re: [zeromq-dev] jzmq on Windows with mingw32

I get the same error with the example program:
C:\Devel\src\zeromq-jzmq-a97e15a\perf>java -Djava.library.path=c:\Devel\mingw\ms
ys\1.0\local\bin -classpath c:\Devel\mingw\msys\1.0\local\bin;c:\Devel\java\lib\
*;. local_lat tcp://127.0.0.1:555 1 100
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.zeromq.ZMQ$Contex
t.construct(I)V
        at org.zeromq.ZMQ$Context.construct(Native Method)
        at org.zeromq.ZMQ$Context.<init>(ZMQ.java:174)
        at org.zeromq.ZMQ.context(ZMQ.java:120)
        at local_lat.main(local_lat.java:36)


nm libjzmq-0.dll shows (partial listing):

61682c30 T _deletecriticalsect...@4
61682960 T _dllm...@12
616810c0 T _dllmaincrtstar...@12
61682c40 T _entercriticalsect...@4
61682c08 T _freelibr...@4
61682c28 T _getlaster...@0
61682bf0 T _getmodulehand...@4
61682bf8 T _getprocaddr...@8
61682c38 T _initializecriticalsect...@4
61681404 T _java_org_zeromq_zmq_00024context_constr...@12
61681464 T _java_org_zeromq_zmq_00024context_final...@8
61681f3c T _java_org_zeromq_zmq_00024poller_run_1p...@32
61681af4 T _java_org_zeromq_zmq_00024socket_b...@12
61681bbc T _java_org_zeromq_zmq_00024socket_conn...@12
61681614 T _java_org_zeromq_zmq_00024socket_constr...@16
61681764 T _java_org_zeromq_zmq_00024socket_final...@8
61681878 T _java_org_zeromq_zmq_00024socket_getbytessock...@12
616817c4 T _java_org_zeromq_zmq_00024socket_getlongsock...@12
61681df4 T _java_org_zeromq_zmq_00024socket_r...@12
61681c84 T _java_org_zeromq_zmq_00024socket_s...@16
61681a0c T _java_org_zeromq_zmq_00024socket_setbytessock...@16
61681968 T _java_org_zeromq_zmq_00024socket_setlongsock...@20
616812b0 T _java_org_zeromq_zmq_make_1vers...@20
61681280 T _java_org_zeromq_zmq_version_1f...@8
6168128c T _java_org_zeromq_zmq_version_1ma...@8
61681298 T _java_org_zeromq_zmq_version_1mi...@8
616812a4 T _java_org_zeromq_zmq_version_1pa...@8
61682c48 T _leavecriticalsect...@4
61682c00 T _loadlibra...@4
61682c20 T _tlsgetva...@4
61682c18 T _virtualprot...@16
61682c10 T _virtualqu...@12
61686088 B __CRT_MT
61682c9c T __CTOR_LIST__

From: [email protected] 
[mailto:[email protected]] On Behalf Of Koert Kuipers
Sent: Monday, December 27, 2010 1:20 PM
To: [email protected]
Subject: [zeromq-dev] jzmq on Windows with mingw32

Has anyone successfully build jzmq on windows with mingw32? I managed to tweak 
the configure.in so that it creates dynamic libraries on mingw32, so I now have 
libjzmw-0.dll. But when I load zmq.jar I get the following error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.zeromq.ZMQ$Contex
t.construct(I)V
        at org.zeromq.ZMQ$Context.construct(Native Method)
        at org.zeromq.ZMQ$Context.<init>(ZMQ.java:174)
        at org.zeromq.ZMQ.context(ZMQ.java:120)
        at com.diamondnotch.Main.main(Main.java:2
29)


I know that zmq.jar can find libjzmw-0.dll, since when I rename libjzmw-0.dll 
it throws a different error:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no libjzmq-0 in java.
library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.zeromq.ZMQ.<clinit>(ZMQ.java:29)
        at com.diamondnotch.Main.main (Main.java:2
29)

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to