Wie kompilieren ich jzmq für ZeroMQ auf OSX?
-
29-09-2019 - |
Frage
Der Versuch, die Anweisungen zu befolgen: http://github.com/zeromq/jzmq
Ich installierte pkg-config Homebrew verwenden und dann laufe ich die folgenden Befehle: ./autogen.sh configure
Das configure nicht mit:
checking how to hardcode library paths into programs... immediate ./configure: line 15263: syntax error near unexpected token `newline' ./configure: line 15263: ` PKG_CHECK_MODULES('
Lösung
Ich habe eine einfache Liste über jzmq für MacOS bauen.
-
Installieren brauen
-
Install-Tools für jzmq Gebäude
brew install autoconf brew install automake brew install libtool brew install pkg-config brew install zeromq@3.2
-
Download jzmq Quelle
https://github.com/zeromq/jzmq Quelle herunterladen zu ~ / irgendwo / jzmq
-
In symbolischen Link auf / usr / local / include
cd /usr/local/include ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/include/zmq.h ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/include/zmq_utils.h
-
symbolic LINKS / usr / local / lib
cd /usr/local/lib ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libzmq.3.dylib ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libzmq.a ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/libmq.dylib ln -s /usr/local/Cellar/zeromq\@3.2/3.2.5/lib/pkgconfig/
-
Erstellen jzmq-jni
cd ~/somewhere/jzmq cd jzmq-jni ./autogen.sh ./configure make make install
-
Fügen Sie Option VM-Optionen
VM-Optionen -Djava.library.path=/usr/local/lib
Andere Tipps
Eine bessere Lösung ist:
eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'`
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist'
Dies wird die Version von aclocal zulassen, dass Schiffe mit OSX finden jeder installiert Makros von Homebrew-Pakete.
Mit homebrew, der Schlüssel ist, die Warnmeldung:
~/code/foss/java/jzmq$ brew install pkg-config
==> Downloading http://pkg-config.freedesktop.org/releases/pkg-config-0.25.tar.gz
==> ./configure --disable-debug --prefix=/usr/local/Cellar/pkg-config/0.25 --with-pc-path=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig
==> make install
Warning: m4 macros were installed to "share/aclocal".
Homebrew does not append "/usr/local/share/aclocal"
to "/usr/share/aclocal/dirlist". If an autoconf script you use
requires these m4 macros, you'll need to add this path manually.
==> Summary
/usr/local/Cellar/pkg-config/0.25: 8 files, 232K, built in 19 seconds
Wenn Sie auf /usr/local/Cellar/pkg-config/0.25/share/aclocal/ anschauen, werden Sie sehen:
$ ls /usr/local/Cellar/pkg-config/0.25/share/aclocal/
pkg.m4
Sie müssen append /usr/local/Cellar/pkg-config/0.25/share/aclocal/ nach / usr / share / aclocal / dirlist, wie folgt aus:
$ cat /usr/share/aclocal/dirlist
/usr/local/share/aclocal
/usr/local/Cellar/pkg-config/0.25/share/aclocal/
Und dann re-run Autogen und die anderen Schritte.
Von der zeromq Mailingliste :
Gebäude 0MQ von der Entwicklung Stamm auf einem OS-UNIX-Stil (Linux, OS X) erfordert, dass die pkg-config ( http://pkg-config.freedesktop.org/wiki/ ) installiert werden. Eine regelmäßige Quelle bauen von 0MQ nicht pkg-config erfordern. Unter Mac OS X, pkg-config kommt nicht mit dem System, so dass, wenn Sie versuchen, zu tun configure Sie können sehen Fehler wie:
./configure: line 23913: syntax error near unexpected token `GLIB,' ./configure: line 23913: `PKG_CHECK_MODULES(GLIB, glib-2.0 gthread-2.0)'
Um dies zu beheben, müssen Sie installieren der neueste pkg-config:
tar xzf pkg-config-0.25.tar.gz cd pkg-config-0.25 ./configure --prefix=/usr/local/pkg-config-0.25 --datarootdir=/usr/share make sudo make install
Dann müssen Sie setzen
/usr/local/pkg-config-0.25/bin
auf $ PATH. Es ist wichtig, die einschließen"--datarootdir=/usr/share"
Option, Welche wird die pkg.m4 Datei installiert in/usr/share/aclocal
, wo aclocal Wille der Lage sein, sie zu finden.Dann können Sie 0MQ bauen:
cd zeromq2 ./autogen.sh # must do this again after installing pkg-config ./configure # add other options here make sudo make install
Edited neueste pkg-config-Version zu reflektieren (0,25).
Ich kam hier mit der gleichen Frage, und ich fühle mich nicht diese beantwortet. Ich installierte auch ZeroMQ und pkg-config über Homebrew. /usr/local/share/aclocal/pkg.m4 existiert und kommt von pkg-config 0,25. Es scheint, dass Homebrew hat die Anforderungen erfüllt aufgeführt, aber es immer noch nicht.
Der Versuch zu kompilieren jzmq auf Mac OS X, erwies sich als ein wenig Kopfschmerzen sein. Ich folgte den Anweisungen oben. Ich war immer noch folgende Störung zu erhalten
Syntaxfehler in der Nähe von unerwartetem Token `PKG_CHECK_MODULES
Die Anweisungen oben Sie sagen, die pkgk.m4 Datei in / usr / share / aclocal zu kopieren, aber Ihr Verzeichnis könnte anders sein. Grundsätzlich müssen Sie das Verzeichnis, dass auto sucht nach Makrodefinitionen.
Das _PKG_CHECK_MODULES_ Makro wird in der definiert pkg.m4 Datei. Diese Datei muss in dem entsprechendes Verzeichnis installiert werden , das ist von gesucht auto . Irgendwie ist auto zweimal auf meinem OS X installiert ist, ein in / usr und andere in / Developer / usr . Stellen Sie sicher wissen, was man es verwendet wird. Just do die auto . Wenn Ihr in ist / Developer / usr , kopieren Sie dann die pkg.m4 Datei auf / Developer / usr / share / aclocal .
Für mich ist das Problem war, dass ich nicht pkg-config installiert hatte.
Auf Osx Mountain Lion Ich habe nicht die dirlist Datei als Phil Calçado sagte, aber ein einfaches Symlink von /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4
zu /usr/share/aclocal
machte den Trick und jetzt jzmq Build in Ordnung.