11

尝试遵循以下指示:http: //github.com/zeromq/jzmq

我使用 Homebrew 安装了 pkg-config,然后运行以下命令: ./autogen.sh ./configure

配置失败:

检查如何将库路径硬编码到程序中...立即
./configure:第 15263 行:意外标记“换行符”附近的语法错误
./configure:第 15263 行:`PKG_CHECK_MODULES('
4

8 回答 8

18

更好的解决方案是:

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

这将允许 OSX 附带的 aclocal 版本查找自制软件包安装的任何宏

于 2011-07-04T01:49:08.233 回答
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 和其他步骤。

于 2011-10-24T12:02:01.383 回答
2

从 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)。

于 2010-08-23T09:27:09.593 回答
2

我为 MacOS 制作了一个关于 jzmq 构建的简单列表。

  1. 安装冲泡

    https://brew.sh

  2. 安装 jzmq 构建工具

    brew install autoconf
    
    brew install automake
    
    brew install libtool
    
    brew install pkg-config
    
    brew install zeromq@3.2
    
  3. 下载jzmq源码

    https://github.com/zeromq/jzmq源码下载到~/somewhere/jzmq

  4. 将符号链接添加到 /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. 将符号链接添加到 /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 选项添加选项

虚拟机选项-Djava.library.path=/usr/local/lib

于 2018-01-15T08:15:24.020 回答
1

我带着同样的问题来到这里,我觉得没有答案。我还通过 Homebrew 安装了 ZeroMQ 和 pkg-config。/usr/local/share/aclocal/pkg.m4 存在并且来自 pkg-config 0.25。Homebrew 似乎满足了列出的要求,但仍然失败。

于 2010-11-10T19:34:43.283 回答
1

尝试在 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

于 2011-04-10T01:11:42.853 回答
1

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

于 2013-01-22T06:33:59.343 回答
0

在 Osx Mountain Lion 上,我没有 Phil Calçado 所说的 dirlist 文件,但是一个简单的符号链接 from/usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4就可以/usr/share/aclocal了,现在 jzmq 构建得很好。

于 2013-01-22T15:27:43.323 回答