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