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('
War es hilfreich?

Lösung

Ich habe eine einfache Liste über jzmq für MacOS bauen.

  1. Installieren brauen

    https://brew.sh

  2. 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
    
  3. Download jzmq Quelle

    https://github.com/zeromq/jzmq Quelle herunterladen zu ~ / irgendwo / jzmq

  4. 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 
    
  5. 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/
    
  6. Erstellen jzmq-jni

    cd ~/somewhere/jzmq
    
    cd jzmq-jni
    
    
    ./autogen.sh
    
    ./configure
    
    make
    
    make install
    
  7. 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top