7

pgmagickXCode4.3.1を使用してOSXLionでビルドしようとしても、あまり成功していません。

次のコマンドを使用して(自作経由で)、ブーストと一緒にImageMagickとGraphicsMagickの両方をインストールしました。

$ brew install graphicsmagick --with-magick-plus-plus
$ brew install imagemagick --with-magick-plus-plus
$ brew install boost --with-thread-unsafe

次に、 https://bitbucket.org/hhatto/pgmagickでリポジトリのクローンを作成しています。

$ hg clone https://bitbucket.org/hhatto/pgmagick/src
$ cd pgmagick
$ python setup.py build

ただし、常に次のエラーが発生します。

ld: library not found for -lboost_python
collect2: ld returned 1 exit status

stdoutの出力に基づいて、セットアップブースト()の適切な場所を探しています/usr/local/lib

私も試しましたが、運がありませんでしたeasy_installpip私はPythonbrewを使用していますが、これも無効にして、ストックpythonインストールを使用してみました-それでも成功しません。

問題を修正する方法、または問題をさらに診断する方法についての提案はありますか?

4

5 に答える 5

8

brew0.9とOSX10.6.8でのこの問題の私自身の複製によると、この問題は--with-thread-unsafe現在のbrew式ファイルによって尊重されていません。これを確認するには、で数式をチェックし、数式brew edit boostの内容にオプションが表示されるかどうかを確認します。

このため、libboost_python-mt.aとの代わりにlibboost_python-mt.dylibビルドされています。libboost_python.alibboost_python.dylib

これを修正する最も簡単な方法は、pgmagick setup.pyを編集boost_lib="boost_python"して(ここでboost_lib="boost_python-mt"指摘されているように)置き換えるか、ここの指示に従ってパッチを適用することです。それ以外の場合は既知の問題です。

于 2012-03-26T20:59:43.637 に答える
4

/ usr / local / lib/内のboost_pythonlibは、libboost_python-mt.aおよびlibboost_python-mt.dylibにちなんで名付けられています。これは、デフォルトのコンパイルがマルチスレッドをサポートする有効化されているためです。

setup.pyのELSE条件でboost_lib="boost_python"をgrepし、boost_lib = "boost_python-mt"で置き換えると、「見つからない」問題が修正されます。

また、libboost_python.aに「-mt」バージョンを挿入しても問題ありません。ここで説明するように、1.42以降「-mt」サフィックスが追加されなくなったLinuxBoostについて説明します。

この行は無視してくださいまたは、「with-boost-python = boost_python-mtpythonsetup.pyinstall」を実行できます。同じ目標を達成するために、setup.py内のextra_compile_argsに「--with-boost-python=boost_python-mt」を追加することもできます。

さらに、管理対象環境でpipを介してpgmagickをインストールできます。参照http://rohanradio.com/blog/2011/12/02/installing-pgmagick-on-os-x/

于 2012-03-26T08:08:57.323 に答える
2

2014年7月の時点で、ブーストPythonライブラリは。と呼ばれる別の自作パッケージであることに注意してくださいboost-python

5254f8f510fb30484f8fac8be3d38e388a4392e2
Author: Tim D. Smith <git@tim-smith.us>
Date:   Sat Jul 19 15:37:25 2014 -0700

    Split out Boost.Python

libboost_python共有ライブラリを取得するには、個別にインストールする必要があります。

于 2014-09-28T05:00:52.050 に答える
0

環境での設定DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib はビルド前に役立ちますか

例えば

$ export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib
$ hg clone https://bitbucket.org/hhatto/pgmagick/src
$ cd pgmagick
$ python setup.py build
于 2012-03-22T23:58:43.170 に答える
0

pgmagickのビルドに必要なmtバイナリと非mt(スレッドおよびスレッドセーフではない)バイナリの両方を使用してBoostをビルドするために、自作にプルリクエストを送信しました。

これはかなり一般的な問題であることが判明しました。パッチが受け入れられるまで、Boostの式をチェックアウトするか、使用してpgmagickをビルドできます。

于 2013-06-11T20:36:02.787 に答える