2010-08-19 81 views
10

试图按照从路线:http://github.com/zeromq/jzmq如何在OSX上为ZeroMQ编译jzmq?

我使用自制安装pkg配置,然后我运行下面的命令: ./autogen.sh 的./configure

的配置过程出现:

 
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

如果你想编译jzmq风暴,得到该库中的代码:https://github.com/asmaier/jzmq。它是https://github.com/nathanmarz/jzmq中的一个分支,包含两个修复程序,使代码能够在Java 1.7.0_25的Mac OS X 10.8.3上编译。 – asmaier 2013-10-16 15:16:45

回答

0

我做了一个关于jzmq building for MacOS的简单列表。

  1. 安装酿造

    https://brew.sh

  2. brew install autoconf 
    
    brew install automake 
    
    brew install lib tool 
    
    brew install pkg-config 
    
    brew install [email protected] 
    
  3. 下载jzmq源

    https://github.com/zeromq/jzmq源码下载,安装工具jzmq建筑到〜/地方/ jzmq

  4. 符号链接添加到/ usr /本地/包括

    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. 添加符号临客到/ 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. 构建jzmq-JNI

    cd ~/somewhere/jzmq 
    
    cd jzmq-jni 
    
    
    ./autogen.sh 
    
    ./configure 
    
    make 
    
    make install 
    
  7. 将选项添加到VM选项

VM选项-Djava.library.path=/usr/local/lib

2

从zeromq mailing list

裴在UNIX样式OS(Linux,OS X) 上从开发 trunk的lding 0MQ需要安装pkg-config (http://pkg-config.freedesktop.org/wiki/) 。 0MQ的常规源版本 不需要pkg-config。 在Mac OS X中,pkg配置不与系统来 ,所以当你尝试做 的./configure你会看到这样的错误:

./configure: line 23913: syntax error near unexpected token `GLIB,' 
./configure: line 23913: `PKG_CHECK_MODULES(GLIB, glib-2.0 gthread-2.0)' 

要解决这个问题,你需要安装 的最新的pkg配置:

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 

然后,你将需要把 /usr/local/pkg-config-0.25/bin您 $ PATH。包含 "--datarootdir=/usr/share"选项, 这将是重要的,它将安装pkg.m4文件在 /usr/share/aclocal,其中aclocal将 能够找到它。

然后你就可以建立0MQ:

cd zeromq2 
./autogen.sh # must do this again after installing pkg-config 
./configure # add other options here 
make 
sudo make install 

编辑,以反映最新的pkg配置版本(0.25)。

1

我来到这里的同一个问题,我不觉得这是回答。我还通过Homebrew安装了ZeroMQ和pkg-config。 /usr/local/share/aclocal/pkg.m4存在并来自pkg-config 0.25。似乎Homebrew已经满足了上述要求,但仍然失败。

+0

如果您希望它只是开箱即用,请勿使用自制软件安装。通过自己下载和编译来安装它。 – Joshua 2010-11-11 02:15:11

+0

我使用像MacPorts或Homebrew这样的工具,所以我不必用手工编译东西。但是,在这种情况下,我想知道ZeroMQ的pkg-config文件是否正确。通过手工编辑(ugh!)jzmq的Makefile,我能够正确地安装它。 – user503667 2010-11-22 03:56:06

+0

实际上symlinking'pkg.m4'应该就够了。 – yawn 2010-12-08 12:01:45

1

试图在Mac OS X上编译jzmq,证明是有点头疼。我遵循上面的说明。我仍然得到以下错误

语法错误附近意外的标记 `PKG_CHECK_MODULES

以上说明告诉你的pkgk.m4文件复制到在/ usr /共享/ aclocal会,但你的目录可能会有所不同。基本上你需要的是automake搜索宏定义的目录。

_PKG_CHECK_MODULES_宏在pkg.m4文件中定义。此文件必须安装在appropriate directory中,该文件由automake搜索。不知何故automake在我的OS X上安装了两次,一次在/usr,另一次在/Developer/usr。确保你知道它使用哪一个。只需做哪个汽车制造商。如果您的密码是/Developer/usr,请将pkg.m4文件复制到/Developer/usr/share/aclocal

18

更好的解决方案是:

eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'` 
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist' 

这将允许aclocal会的版本附带的OSX找到通过自制软件的软件包安装任何宏。

+0

这对我有效。也许它应该被提升为答案? – Brian 2012-04-22 03:09:43

+2

为我工作:)谢谢@Beekhof! – 2012-09-20 03:17:46

+0

执行此操作后运行./autogen.sh,而不仅仅是./configure。之后,它为我工作! – 2013-04-01 23:16:27

4

利用自制的,关键是警告消息:

~/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 

如果你看一下/usr/local/Cellar/pkg-config/0.25/share/aclocal/,您将看到:

$ ls /usr/local/Cellar/pkg-config/0.25/share/aclocal/                
pkg.m4 

您需要添加/usr/local/Cellar/pkg-config/0.25/share/aclocal/到/ usr /共享/ aclocal会/ dirlist,像这样:

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

然后重新运行autogen和其他步骤。

1

对我来说,问题是我没有安装pkg-config。

+0

我也是这样,'brew install pkg-config'修复了它 – 2013-11-27 22:45:03

0

在Osx Mountain Lion上,我没有PhilCalçado所说的dirlist文件,但是从/usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4/usr/share/aclocal的一个简单符号链接使得这个技巧成为现实,现在jzmq也可以正常工作。