尝试遵循以下指示:http: //github.com/zeromq/jzmq
我使用 Homebrew 安装了 pkg-config,然后运行以下命令: ./autogen.sh ./configure
配置失败:
检查如何将库路径硬编码到程序中...立即 ./configure:第 15263 行:意外标记“换行符”附近的语法错误 ./configure:第 15263 行:`PKG_CHECK_MODULES('
尝试遵循以下指示:http: //github.com/zeromq/jzmq
我使用 Homebrew 安装了 pkg-config,然后运行以下命令: ./autogen.sh ./configure
配置失败:
检查如何将库路径硬编码到程序中...立即 ./configure:第 15263 行:意外标记“换行符”附近的语法错误 ./configure:第 15263 行:`PKG_CHECK_MODULES('
更好的解决方案是:
eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'`
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist'
这将允许 OSX 附带的 aclocal 版本查找自制软件包安装的任何宏。
使用自制软件,关键是警告消息:
~/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/share/aclocal/dirlist,如下所示:
$ cat /usr/share/aclocal/dirlist
/usr/local/share/aclocal
/usr/local/Cellar/pkg-config/0.25/share/aclocal/
然后重新运行 autogen 和其他步骤。
从 zeromq邮件列表:
在 UNIX 风格的操作系统(Linux、OS X)上从开发主干构建 0MQ 需要安装 pkg-config(http://pkg-config.freedesktop.org/wiki/)。0MQ 的常规源构建不需要 pkg-config。在 Mac OS X 上,系统不附带 pkg-config,因此当您尝试执行 ./configure 时,您可能会看到如下错误:
./configure: line 23913: syntax error near unexpected token `GLIB,' ./configure: line 23913: `PKG_CHECK_MODULES(GLIB, glib-2.0 gthread-2.0)'
要解决此问题,您需要安装最新的 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
然后你需要把
/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-config 版本 (0.25)。
我为 MacOS 制作了一个关于 jzmq 构建的简单列表。
安装冲泡
安装 jzmq 构建工具
brew install autoconf
brew install automake
brew install libtool
brew install pkg-config
brew install zeromq@3.2
下载jzmq源码
https://github.com/zeromq/jzmq源码下载到~/somewhere/jzmq
将符号链接添加到 /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
将符号链接添加到 /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/
构建 jzmq-jni
cd ~/somewhere/jzmq
cd jzmq-jni
./autogen.sh
./configure
make
make install
向 VM 选项添加选项
虚拟机选项-Djava.library.path=/usr/local/lib
我带着同样的问题来到这里,我觉得没有答案。我还通过 Homebrew 安装了 ZeroMQ 和 pkg-config。/usr/local/share/aclocal/pkg.m4 存在并且来自 pkg-config 0.25。Homebrew 似乎满足了列出的要求,但仍然失败。
尝试在 Mac OS X 上编译jzmq,被证明有点头疼。我按照上面的说明进行操作。我仍然收到以下错误
意外标记“PKG_CHECK_MODULES”附近的语法错误
上面的说明告诉您将pkgk.m4文件复制到/usr/share/aclocal,但您的目录可能不同。基本上你需要automake搜索宏定义的目录。
_PKG_CHECK_MODULES_ 宏在pkg.m4文件中定义。该文件必须安装在automake搜索的相应目录中。不知何故,automake 在我的 OS X 上安装了两次,一次在/usr中,另一次在/Developer/usr中。确保你知道它使用的是哪一个。只需执行which automake 即可。如果您的文件是/Developer/usr,则将pkg.m4文件复制到/Developer/usr/share/aclocal。
对我来说,问题是我没有安装 pkg-config。
在 Osx Mountain Lion 上,我没有 Phil Calçado 所说的 dirlist 文件,但是一个简单的符号链接 from/usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4
就可以/usr/share/aclocal
了,现在 jzmq 构建得很好。