C++ で作成したパッケージがあり、既に共有ライブラリにコンパイルしています。
独自のメイン関数とリンクすると、初期化関数 initfoo を直接呼び出してパッケージを初期化でき、すべて正常に動作します。
Python に共有ライブラリをパッケージとして認識させるにはどうすればよいので、次のように入力するだけです。
import foo
通常のpythonインタープリターから実行していますか?
コンパイルは通常の cmake ビルド システムの一部である必要があるため、distutils を使用してファイルをコンパイルすることに興味はありません。共有ライブラリをロードするために必要なパッケージ ファイルを作成するだけです。
更新:私は今それが働いています。この問題は、共有ライブラリ名の lib プレフィックスをデフォルトにする cmake にありました。これを修正するには
SET_TARGET_PROPERTIES(foo PROPERTIES PREFIX "")
および Mac OS X の場合
SET_TARGET_PROPERTIES(foo PROPERTIES SUFFIX ".so")