2012-12-07 130 views
2

我看到很多人展示我如何使用Python API在C++然而,看來我沒有API或引用已經當我包括:Python解釋器的C++

#include "Python.h" 

#include <Python.h> 

我看了一下這些網站,並給了我一切,除非我能得到這個參考:


我已經安裝了Python 2.7,我想知道,如果從python.org其他下載了我的答案。我安裝了IronPython,但沒有成功。

我在哪裏可以得到這個參考?

+0

IronPython是一個Python的.NET實現。你想要CPython。 –

+0

我已經包含它現在我得到這個錯誤:LINK:致命錯誤LNK1104:無法打開文件'python27_d.lib' –

+0

正如第一篇文章中提到的,在調試模式下構建需要python27_d.lib,它不包含在正常分佈中。這個答案和評論提供了一些處理該選項:http://stackoverflow.com/questions/11311877/creating-a-dll-from-a-wrapped-cpp-file-with-swig/11313020#11313020 –

回答

2

這聽起來像你不清楚你的編譯器和鏈接器如何工作。 #include是一個預處理器指令,它將另一個文件插入包含該語句的文件中的該點。但是,您的編譯器需要知道在哪裏查找文件,因此您需要將包含Python.h的文件夾放在IDE的包含位置列表中(例如,在Visual Studio中,可以在每個文件夾中執行此操作)項目基礎,還是整個IDE),或者作爲操作系統中的環境變量。

如果庫是一個只有頭文件的庫,那麼這就足夠了,因爲整個庫被插入到代碼中,然後進行編譯。然而,你已經指出你正在得到一個LINK錯誤,這意味着雖然它能夠在Python.h中找到聲明,但鏈接器不知道在哪裏找到已編譯的定義(存儲在python27_d中。 LIB)。因此,您還需要將該文件的位置添加到IDE的庫位置列表中。

1

你可以找到它\Python27\include\。所以你需要設置你的包含目錄來讓它看起來那裏。

+0

哇謝謝,我現在就試試 –

0

您需要安裝開發包。
在Ubuntu上它是python2.7-dev