Как мне скомпилировать jzmq для ZeroMQ в OSX?
Пытаясь следовать указаниям из: http://github.com/zeromq/jzmq
Я установил pkg-config с помощью Homebrew, а затем запускаю следующие команды:
. /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('
Ответы
Ответ 1
Я сделал простой список о сборке jzmq для MacOS.
Установить варево
https://brew.sh
Установить инструменты для сборки jzmq
brew install autoconf
brew install automake
brew install lib tool
brew install pkg-config
brew install [email protected]
Загрузить исходный код jzmq
https://github.com/zeromq/jzmq загрузить исходный код в ~/где-то /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
Добавить опцию к параметрам виртуальной машины
Варианты ВМ -Djava.library.path=/usr/local/lib
Ответ 2
Лучшее решение:
eval 'brew --config | grep HOMEBREW_PREFIX | sed 's/: /=/''
sudo bash -c 'echo '$HOMEBREW_PREFIX/share/aclocal' >> 'aclocal --print-ac-dir'/dirlist'
Это позволит версии aclocal, поставляемой с OSX, находить все макросы, установленные пакетами homebrew.
Ответ 3
Для 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/
А затем повторно запустите автоген и другие шаги.
Ответ 4
Из списка рассылки:
Здание 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).
Ответ 5
Я пришел сюда с тем же вопросом, и я не чувствую, что на него дан ответ. Я также установил ZeroMQ и pkg-config через Homebrew./usr/local/share/aclocal/pkg.m4 существует и поставляется из pkg-config 0.25. Кажется, что Homebrew выполнил перечисленные требования, но все еще не работает.
Ответ 6
Попытка скомпилировать jzmq на Mac OS X, оказалась головной болью. Я следовал инструкциям выше. Я все еще получаю следующую ошибку
синтаксическая ошибка рядом с неожиданным токеном "PKG_CHECK_MODULES
Приведенные выше инструкции говорят вам скопировать файл pkgk.m4 в /usr/share/aclocal, но ваш каталог может отличаться. По сути, вам нужен каталог, который автоматизирует поиск определений макросов.
Макрос _PKG_CHECK_MODULES_ определен в файле pkg.m4. Этот файл должен быть установлен в соответствующем каталоге, который ищется с помощью automake. Каким-то образом automake устанавливается дважды на мою OS X, одну в /usr, а другую в /Developer/usr. Убедитесь, что вы знаете, какой он использует. Просто сделай, какой автопроизводитель. Если вы находитесь в /Developer/usr, скопируйте файл pkg.m4 в /Developer/usr/share/aclocal.
Ответ 7
Для меня проблема была в том, что у меня не было установлено pkg-config.
Ответ 8
На Osx Mountain Lion у меня нет файла dirlist, как сказал Фил Калькадо, но простая символическая ссылка от /usr/local/Cellar/pkg-config/[version]/share/aclocal/pkg.m4
до /usr/share/aclocal
сделала трюк, и теперь jzmq прекрасно работает.