Создание расширения Python с помощью bjam (Boost.Build) в Mac OS X - PullRequest
1 голос
/ 31 августа 2010

Насколько я могу сказать, что происходит, это:

  • В python.jam выясняется, какую версию Python я использую и какие каталоги библиотек искать;
  • Он добавляет -Wl-R аргументы в командную строку g++ для включения этих каталогов;
  • Команда ld жалуется, что у нее нет опции -R.

Так что либо (a) у меня есть дефектная версия ld, либо (b) мне нужно сообщить bjam, что ему нужно использовать другой параметр (возможно -rpath), либо этот параметр не требуется.

Должно быть, я что-то упустил - я, конечно, не первый человек в истории, который пытался создать расширение Python с Boost на Mac OS X - но я не могу понять, где искать дальше. Есть намеки?

Обновление:

Используемая мной команда:

bjam

Если я сделаю bjam --version, я получу

Boost.Build V2 (Milestone 12)
Boost.Jam 03.1.18

Используемый набор инструментов - это любой набор инструментов по умолчанию в Mac OS X.

Компилятор является компилятором по умолчанию в Mac OS X (с установленными инструментами разработчика), который является версией GCC 'i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc., сборка 5664) ».

Компоновщик является компоновщиком по умолчанию в Mac OS X, который называется ld или ld64, но у которого нет опции -R, которую имеет GNU ld, поэтому я предполагаю, что это специальная версия разработан, чтобы учесть концепцию каркасов Mac OS X или что-то еще. У него нет опции --version.

Существует Jamfile, который выглядит так:

import python ;

python-extension _optimor :
    bill_python.cpp
    bill_record_python.cpp
    .. etc ...
    :
    <cxxflags>-fPIC
    ... etc ...
    <variant>debug:<define>DEBUG
    <include>/usr/include/python2.6
    <include>../
    ;

Работает нормально на Ububtu GNU / Linux.

Меня не интересует Boost или bjam per se; мое единственное требование - скомпилировать это расширение, чтобы я мог приступить к разработке системы, для которой это расширение является небольшой, но важной частью.

1 Ответ

3 голосов
/ 07 сентября 2010

Я не могу сказать, какая у вас версия Boost .. Но наиболее вероятной причиной проблемы является то, что вы используете для сборки общий набор инструментов "gcc".Существует специальный набор инструментов для сборки с вариантом GCC, который Apple использует в Xcode.Попробуйте построить с bjam toolset=darwin вместо.

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