2010-08-19 18 views
10

Der Versuch, die Anweisungen zu befolgen: http://github.com/zeromq/jzmqWie kompiliere ich jzmq für ZeroMQ unter OSX?

I pkg-config installiert Homebrew verwenden und dann laufe ich die folgenden Befehle: ./autogen.sh configure

Das configure schlägt 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(' 
+0

Falls Sie jzmq für Sturm kompilieren, den Code aus diesem Repository erhalten: https://github.com/asmaier/jzmq. Es ist ein Fork von https://github.com/nathanmarz/jzmq und enthält zwei Fixes, um den Code unter Mac OS X 10.8.3 mit Java 1.7.0_25 kompilieren zu lassen. – asmaier

Antwort

0

Ich habe eine einfache Liste über jzmq Gebäude für MacOS gemacht.

  1. Gebräu Installieren

    https://brew.sh

  2. Install-Tools für jzmq Gebäude

    brew install autoconf 
    
    brew install automake 
    
    brew install lib tool 
    
    brew install pkg-config 
    
    brew install [email protected] 
    
  3. Herunterladen jzmq Quelle

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

  4. symbolischen Link hinzufügen/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. symbolische linke hinzufügen/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. Bauen jzmq-jni

    cd ~/somewhere/jzmq 
    
    cd jzmq-jni 
    
    
    ./autogen.sh 
    
    ./configure 
    
    make 
    
    make install 
    
  7. Option zu VM-Optionen hinzufügen

VM Optionen -Djava.library.path=/usr/local/lib

2

Vom zeromq mailing list:

Bui Wenn 0M35 von der Entwicklung Trunk auf einem UNIX-Stil OS (Linux, OS X) erfordert, dass pkg-config (http://pkg-config.freedesktop.org/wiki/) installiert werden. Ein regulärer Quell-Build von 0MQ benötigt keine pkg-config. Unter Mac OS X, pkg-config kommt nicht mit dem System, so dass, wenn Sie versuchen, zu tun configure Sie Fehler wie sehen können:

./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 die Installation 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 /usr/local/pkg-config-0.25/bin auf Ihrem $ PATH setzen. Es ist wichtig, die "--datarootdir=/usr/share" Option, einzuschließen, die die Datei pkg.m4 in /usr/share/aclocal installieren wird, wo aclocal in der Lage sein wird, es 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).

1

Ich kam hier mit der gleichen Frage, und ich fühle nicht, dass dies beantwortet wird. Ich habe auch ZeroMQ und pkg-config über Homebrew installiert. /usr/local/share/aclocal/pkg.m4 existiert und kommt von pkg-config 0.25. Es scheint, dass Homebrew die gestellten Anforderungen erfüllt hat, aber es schlägt immer noch fehl.

+0

Wenn Sie möchten, dass es einfach funktioniert, installieren Sie es nicht mit Homebrew. Installieren Sie es, indem Sie es herunterladen und selbst kompilieren. – Joshua

+0

Ich benutze Tools wie MacPorts oder Homebrew, also muss ich nicht mit Hand-Compiling-Sachen herumalbern. Aber in diesem Fall frage ich mich, ob die pkg-config-Datei für ZeroMQ korrekt ist. Indem ich das Makefile für jzmq manuell bearbeiten konnte (hmm!), Konnte ich es richtig installieren. – user503667

+0

Eigentlich sollte die Symlinking von 'pkg.m4' ausreichen. – yawn

1

Der Versuch, unter Mac OS X jzmq zu kompilieren, erwies sich als ein wenig Kopfschmerzen. Ich folgte den Anweisungen oben. Ich war noch immer folgende Fehler

Syntaxfehler in der Nähe von unerwartetem Token `PKG_CHECK_MODULES

Die obigen Anweisungen erklären Ihnen die pkgk.m4 Datei in /usr/share/aclocal zu kopieren, aber Ihr Verzeichnis könnte anders sein. Grundsätzlich benötigen Sie das Verzeichnis automake sucht nach Makrodefinitionen.

Das Makro _PKG_CHECK_MODULES_ ist in der Datei pkg.m4 definiert. Diese Datei muss in der appropriate directory installiert werden, die durch automake gesucht wird.Irgendwie ist automake zweimal auf meinem OS X installiert, eins in /usr und ein anderes in /Entwickler/usr. Stellen Sie sicher, dass Sie wissen, welche es verwendet. Tun Sie einfach welche automake. Wenn Ihre in ist /Entwickler/usr, dann kopieren Sie die pkg.m4 Datei zu /Entwickler/usr/share/acocal.

18

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 alle Makros von Homebrew-Pakete installiert zu finden.

+0

Das hat für mich funktioniert. Vielleicht sollte es gefördert werden, um die Antwort zu sein? – Brian

+2

Arbeitete auch für mich :) Danke @Beekhof! –

+0

Machen Sie, um ./autogen.sh auszuführen, nachdem Sie dies getan haben, nicht nur ./configure. Danach hat es für mich funktioniert! –

4

Mit homebrew, ist der Schlüssel 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 man sich /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 /usr/local/Cellar/pkg-config/0.25/share/aclocal/ nach/usr/share/aclocal/dirlist anhängen, wie folgt aus:

$ cat /usr/share/aclocal/dirlist                   
/usr/local/share/aclocal 
/usr/local/Cellar/pkg-config/0.25/share/aclocal/ 

Und dann Autogen und die anderen Schritte erneut ausführen.

1

Für mich bestand das Problem darin, dass ich pkg-config nicht installiert hatte.

+0

Ich habe auch 'brew install pkg-config' repariert –

0

auf OSX Mountain Lion Ich habe die dirlist Datei nicht als Phil Calçado sagte, aber ein einfaches Symlink /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4-/usr/share/aclocal den Trick gemacht und jetzt gut jzmq zu bauen.