Как мне скомпилировать jzmq для ZeroMQ на OSX?
Пытаясь следовать указаниям от: http://github.com/zeromq/jzmq
Я установил pkg-config с помощью Homebrew, а затем запускаю следующие команды:./autogen.sh./configure
Сбой конфигурации с:
проверка, как жестко закодировать пути библиотек в программы... немедленно./configure: строка 15263: синтаксическая ошибка рядом с неожиданным токеном `newline' ./configure: строка 15263: ` PKG_CHECK_MODULES('
8 ответов
Я сделал простой список о сборке jzmq для MacOS.
Установить варку
Установить инструменты для сборки 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 загрузить исходный код в ~/where / 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
Лучшее решение:
eval `brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/'`
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> `aclocal --print-ac-dir`/dirlist'
Это позволит версии aclocal, поставляемой с OSX, найти любые макросы, установленные пакетами homebrew.
Для homebrew ключом является предупреждающее сообщение:
~/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/
А затем повторно запустите автоген и другие шаги.
Из списка рассылки zeromq:
Сборка 0MQ из ствола разработки в ОС UNIX (Linux, OS X) требует установки 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).
Попытка скомпилировать jzmq на Mac OS X оказалась головной болью. Я следовал инструкциям выше. Я все еще получаю следующую ошибку
синтаксическая ошибка рядом с неожиданным токеном `PKG_CHECK_MODULES
Приведенные выше инструкции говорят вам скопировать файл pkgk.m4 в / usr / share / aclocal, но ваш каталог может отличаться. По сути, вам нужен каталог, в котором automake ищет определения макросов.
Макрос _PKG_CHECK_MODULES_ определен в файле pkg.m4. Этот файл должен быть установлен в соответствующую директорию, которую ищет automake. Каким-то образом automake устанавливается дважды на мою OS X, одну в / usr, а другую в /Developer/usr. Убедитесь, что вы знаете, какой он использует. Просто сделай, какой автопроизводитель. Если вы находитесь в /Developer/usr, скопируйте файл pkg.m4 в /Developer/usr / share / aclocal.
Для меня проблема была в том, что у меня не было установлено pkg-config.
Я пришел сюда с тем же вопросом, и я не чувствую, что на него дан ответ. Я также установил ZeroMQ и pkg-config через Homebrew. /usr/local/share/aclocal/pkg.m4 существует и поставляется из pkg-config 0.25. Кажется, что Homebrew выполнил перечисленные требования, но все еще не работает.
На Osx Mountain Lion у меня нет файла dirlist, как сказал Фил Калькадо, но есть простая символическая ссылка от /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4
в /usr/share/aclocal
сделал трюк и теперь JZMQ сборки хорошо.