2012-02-18 6 views
2

私は、コンパイルしてPythonで読めるようにするためのソースコードをcppで書いています。 Pythonは2つのファイル名を入力として与え、行列とベクトルを出力として取得する必要があります。 私はC/C++でそれをやらなければならなかったのですが、2つの文字と2つのポインタを使用しましたが、コンパイルされたC/C++プログラムがPython言語でどのように見えるのか分かりません。PythonのC/C++関数をコンパイルする方法

誰かが私を助けてくれることを願っています。 ありがとうございます。

+0

あなたは 'ctypes'やPython拡張でこれを行うことができます。前者は開発の面でおそらく早いでしょう。 C++コードをDLLにビルドし、単一の関数をエクスポートします。 ctypesのドキュメントを読んで、Pythonからそれを得る方法を学んでください。 –

+3

[this stackoverflow question](http://stackoverflow.com/questions/145270/calling-c-c-from-python)への回答が役に立ちます。 – DSM

+0

リンクありがとうございますが、共有ライブラリとしてコンパイルする際にいくつかの問題があります。 Mac OSではどうしたらいいですか? – Nicholas

答えて

1

Swigを使用して、PythonからC/C++コードを呼び出すのに必要なグルーコードを生成してみてください。あなた自身でコードを書くよりも簡単です。

+0

チップをありがとう。私はLinuxにswigをインストールしましたが、それは完璧に動作しますが、Mac OSでは 'ld -shared'コマンドを使っていくつか問題がありますが、' -shared'を認識しないと言います。どうすれば修正できますか? – Nicholas

+0

@Nicholasなぜあなたは 'ld'を手で動かしていますか?あなたは 'gcc'や' g ++ 'であなたのリンクを行うべきです。 – Borealid

+0

私はいくつかのウェブサイトでそれを発見したが、それはMacで動作しません。あなたは 'gcc'や' g ++ 'の使い方を知っていますか?全ての可能なオプションがわかりません。私は初心者です – Nicholas

関連する問題