установка буста с ++ на Mac OSX Leopard - порт не работает - PullRequest
2 голосов
/ 13 июля 2009

Я не большой программист на С ++, просто конечный пользователь, пытающийся установить существующий проект из исходного кода. Одной из зависимостей проекта является библиотека Boost. Когда я попытался установить boost на моем osx 10.5.7 с помощью «sudo port install boost», я получил следующее сообщение об ошибке:

--->  Building boost with target all
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_boost/work/boost_1_35_0" && gmake all " returned error 2
Command output: Makefile:2: *** missing separator.  Stop.

Error: Status 1 encountered during processing.

помощь?

РЕДАКТИРОВАТЬ : Я подозреваю, что что-то не так с моей системой, хотя я не уверен, что - это просто простая установка на osx + CD-код xcode, который прилагается, ничего особенного. [в Linux это намного проще!)

Я сделал "sudo port selfupdate" и "sudo port upgrade устаревшие", как предложено в ответе, и второй работал всю ночь, затем потерпел неудачу со многими ошибками, последние несколько:

Error: The following dependencies failed to build: db46
Error: Unable to upgrade port: 1
--->  Extracting tiff
On Mac OS X 10.5, tiff 3.8.2 requires Xcode 3.1 or later but you have Xcode 3.0.
Error: Target org.macports.extract returned: incompatible Xcode version
Error: Unable to upgrade port: 1
--->  Activating xorg-renderproto @0.9.3_0
Error: Target org.macports.activate returned: Image error: /opt/local/include/X11/extensions/render.h is being used by the active render port.  Please deactivate this port first, or use 'port -f activate xorg-renderproto' to force the activation.
Error: The following dependencies failed to build: xorg-renderproto
Error: Unable to upgrade port: 1

Ответы [ 4 ]

3 голосов
/ 13 июля 2009

По моему опыту, вы можете легко сделать что-то с другими установщиками, которые могут нарушить правильную работу команды port . Не говоря уже о том, что MacPorts просто ломается в самое случайное время для меня. Однажды я удалил perl с помощью команды port. Он сломал всю установку порта, даже не пытайтесь это сделать.

Если бы вы могли, я бы просто собрал Boost из исходного кода, используя gcc . На самом деле это не так сложно.

Я написал статью о том, как сделать это с некоторыми подробностями здесь . В нем особое внимание уделено тому, как это сделать в Mac OS X, но также говорится, как это сделать в Windows.

Вам понадобятся две команды:

Сборка отладочных библиотек с использованием GCC:

bjam toolset= darwin variant=debug threading=multi link=static

Сборка релизных библиотек с использованием GCC:

bjam toolset=darwin variant=release threading=multi link=static

Более подробная информация по этому вопросу здесь .

2 голосов
/ 13 июля 2009

В Mac OS X 10.5 для tiff 3.8.2 требуется Xcode 3.1 или более поздней версии, но у вас есть Xcode 3.0 .

Разве это не причина port upgrade outdated отказа?

2 голосов
/ 13 июля 2009

Попробуйте запустить 'sudo port selfupdate'. Вы используете устаревшую версию MacPorts. После этого запустите 'port upgrade outdated', чтобы обновить имеющиеся у вас порты, а затем попробуйте снова установить boost.


Обновление: Обновите XCode как Paul , упомянутый в посте ниже. Вы можете получить его на сайте разработчиков Apple . Вам, вероятно, придется зарегистрироваться, чтобы получить ссылку для скачивания. Что касается ошибки, связанной с активным портом рендеринга, вы можете безопасно отключить этот порт, поскольку он был заменен на xorg-renderproto Отключите его, запустив 'sudo port deactivate render'. Как только это будет сделано, вы можете обновить снова, используя 'port upgrade outdated', и это не займет много времени.

1 голос
/ 13 июля 2009

Мой опыт работы с MacPorts - в лучшем случае смешанное благословение. Иногда порты устарели, или только наполовину, очень хорошо, когда это работает, но, к сожалению, не всегда, поэтому я как бы разочаровался в port, если честно ...

Тем не менее, стандартная комбинация configure, bjam, ... из дистрибутива boost работает безупречно на os x, по какой-либо причине вы хотите, чтобы она работала через port?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...