尝试按照以下说明进行操作:http://github.com/zeromq/jzmq
我使用Homebrew安装了pkg-config,然后运行以下命令: ./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 :(得分:18)
更好的解决方案是:
eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'`
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist'
这将允许OSX附带的aclocal版本查找由自制软件包安装的任何宏。
答案 1 :(得分: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 / share / aclocal / dirlist,如下所示:
$ cat /usr/share/aclocal/dirlist
/usr/local/share/aclocal
/usr/local/Cellar/pkg-config/0.25/share/aclocal/
然后重新运行autogen和其他步骤。
答案 2 :(得分:2)
来自zeromq mailing list:
从开发中构建0MQ UNIX风格的OS(Linux,OS X)上的trunk 需要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)。
答案 3 :(得分:1)
我带着同样的问题来到这里,我觉得这没有得到回答。我还通过Homebrew安装了ZeroMQ和pkg-config。 /usr/local/share/aclocal/pkg.m4存在且来自pkg-config 0.25。似乎Homebrew满足了列出的要求,但它仍然失败。
答案 4 :(得分:1)
尝试在Mac OS X上编译jzmq,事实证明有点令人头疼。我按照上面的说明。我仍然得到以下错误
意外令牌附近的语法错误 `PKG_CHECK_MODULES
上述说明指示您将 pkgk.m4 文件复制到 / usr / share / aclocal ,但您的目录可能不同。基本上你需要 automake 搜索宏定义的目录。
_PKG_CHECK_MODULES_宏在 pkg.m4 文件中定义。此文件必须安装在appropriate directory中,由 automake 搜索。不知何故,automake在我的OS X上安装了两次,一个安装在 / usr 中,另一个安装在 / Developer / usr 中。确保你知道它正在使用哪一个。只需做哪个automake 。如果你的是 / Developer / usr ,那么将 pkg.m4 文件复制到 / Developer / usr / share / aclocal 。
答案 5 :(得分:1)
对我来说,问题是我没有安装pkg-config。
答案 6 :(得分:0)
在Osx Mountain Lion上我没有像PhilCalçado所说的那种dirlist文件,但是从/usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4
到/usr/share/aclocal
的简单符号链接制作了这个技巧,现在jzmq构建正常。
答案 7 :(得分:0)
我为MacOS制作了一个关于jzmq构建的简单列表。
安装brew
为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选项添加选项
VM选项-Djava.library.path=/usr/local/lib