2011-07-01 21 views
4

私はいくつかのC++コードにPythonを埋め込む作業をしていますが、コンパイルが滞っています。ヘッダファイルの場合 C++ライブラリにPythonを埋め込む

、私は私がしようと当初考え

#include <Python.h> 

$g++ EmbeddedPython.cpp 

を持っていますが、

EmbeddedPython.cpp:1:20: error: Python.h: No such file or directory 
EmbeddedPython.cpp: In function ‘int main(int, char**)’: 
EmbeddedPython.cpp:6: error: ‘Py_Initialize’ was not declared in this scope 
.... 

なってしまうでしょう、私はその後

g++ EmbeddedPython.cpp -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5 
を試してみました

、それは最初の2つのエラーを処分したが、私はまだ

Undefined symbols: 
    "_Py_Initialize", referenced from: 
    _main in ccxJAUAB.o 

になってしまった私はこれに新しいの少しだけど、私は私が速く学んでいると思います。ライブラリをリンクする必要があると私は信じています。しかし、どちらがどのように?私は動的か静的なものが必要ですか?

私はMacBook Proを使用しています。

+0

また、私は、MacBook Pro、python2.5、python2.6、python2.7を持っています。 – csta

+0

私は/usr/lib/libpython.dylibを追加しました – csta

答えて

4

libpythonとリンクする必要があります。 UNIXのプログラマは、リンクコマンドの "-lpython"(つまり、 "g ++"コマンドの最後)でこれを行います。 Macでは、「フレームワークのPython」と思う。

+0

これは感謝しました。 -I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5を入力する必要がないように、タイプできるものがありますか。 – csta

+0

Appleのgccがフレームワーク。 "-framework Python"がそれを処理しなかった場合、あなたはあなたがそこにいるものについていると思います。 – aksommerville

関連する問題