とboost-python
、boost-build
をhomebrew
とMac OS X 10.11.6でインストールしました。私はPython 3.5.2を実行しています。 boost
は正しく設定され、C++プロジェクトで動作します。 user-config.jam
と私のpython拡張プロジェクトディレクトリにあるjamfileはokです。私はb2
インタプリタを使用して、以下のソースboost.pythonを使用してPython拡張機能をビルドする際にエラーが発生しました
#include <iostream>
#include <boost/python.hpp>
using namespace std;
void say_hello() {
std::cout << "HELLO!!!!!";
}
BOOST_PYTHON_MODULE(hello) {
using namespace boost::python;
def ("say_hello", say_hello);
}
から共有ライブラリをコンパイルしようとしました。これは、次のコマンドを発行します。
とクラッシュdarwin.link.dllビン/ダーウィン-4.2.1 /リリース/ hello.so
アーキテクチャx86_64のための未定義のシンボル
"g++" -dynamiclib -Wl,-single_module -install_name "hello.so" -L"/usr/local/lib/python3.5" -o "bin/darwin-4.2.1/release/hello.so" "bin/darwin-4.2.1/release/say_hello.o" -lpython3.5 -headerpad_max_install_names -Wl,-dead_strip -no_dead_strip_inits_and_terms
、バック
[...長いトレース:から参照
"typeinfoのブースト用::のpython ::オブジェクト:: py_function_impl_base"、 ...]
"ブースト::のpythonを::詳細::はinit_module(PyModuleDef &、無効(*)())"、から参照:say_hello.o LDに
_PyInit_hello:記号(S)アーキテクチャでは見つかりませんx86_64
私は非常によく似た問題に関するすべての質問を認識していますが、残念なことにそれらのどれもが有効な回答を提供していません。
私はこの単純なコードをPython拡張モジュールとして動作させるにはどうすればよいですか?