2013-09-24 37 views
3

畢竟,我對Boost.Python進行實驗的日子感到沮喪,但是什麼都沒有實現。如何連接Python和C++

我按照指示下載並安裝並運行bjam等。進一步的發展肯定會被考慮,但現在我只想從簡單的事情開始。然而,圖書館甚至無法建立一個簡單的hello世界的例子... VS2012不斷彈出一些錯誤,如error LNK2001: unresolved external symbol __imp___Py_NoneStruct

無論如何,我想在C++中編寫一些基本功能(例如添加,乘法等),然後從Python腳本中調用它們。

對不起,我提出了一個非常基本的問題。任何人都可以給我一個簡單的例子嗎我認爲我的代碼很好,the essence is how do you link and include the library in you project, and how do you setup the project properties.

如果有人能教我,我將非常感激。謝謝。 :)

==========================================

編輯:

我已經發布了相關的東西之前。這裏是LINL:How to solve __imp___Py_NoneStruct Error in Boost.Python?

我已經發布了我所有的鏈接和包括操作在那裏。

非常感謝。 :)

+0

您正在使用哪種構建環境? – mike

+0

只是鏈接python庫 –

+0

@mike感謝您的回覆。我正在使用Windows 7,Microsoft Visual Studio 2012 Express版本,Python 2.7,Boost 1.54。 :) – ChangeMyName

回答

0

您確定要鏈接正確版本的所有庫嗎?

Boost.Python需要一個已編譯的庫,用於提升並鏈接到正確的python運行時庫。如果以調試模式編譯,則所有鏈接庫也應該是調試版本。

增強的替代方法是SWIG或者如果您有C兼容接口ctypescffi

+0

我不知道我是否做得對。我提出了一個問題在http://stackoverflow.com/questions/18963712/how-to-solve-imp-py-nonestruct-error-in-boost-python/18965627?noredirect=1#18965627,我把我所有的鏈接操作。你能看看嗎?非常感謝。 :) – ChangeMyName

+0

@NewLong:我看到了另一個線程,看到你提到你遇到了一個問題'錯誤LNK1104:無法打開文件'python27_d.lib''。你解決了這個問題嗎?如果沒有,那是你需要的第一件事。在其他問題中建議的解決方案是正確的。 – Abhijit

+0

@Abhijit不,這是另一個噩夢困擾着我。你的意思是正確的答案是包括python.h? – ChangeMyName

0

有本地python庫被稱爲'ctypes'。 In here you can find some some examples

+0

謝謝你的回覆。我認爲來自Python的調用不是我的首要任務。我想首先運行來自http://www.boost.org/doc/libs/1_54_0/libs/python/doc/tutorial/doc/html/index.html#python.quickstart的hello world示例,然後瞭解更多信息關於圖書館。 – ChangeMyName