2012-02-18 87 views
2

我有一個用cpp編寫的源代碼,我想編譯並在Python中可讀。 Python必須提供2個文件名作爲輸入,並檢索一個矩陣和一個向量作爲輸出。 如果我不得不在C/C++中使用它,我會使用2個字符和2個指針,但是我不知道Python語言如何看到編譯的C/C++程序。如何爲python編譯C/C++函數

我希望有人能幫助我。 非常感謝。

+0

你可以用'ctypes'或Python擴展來實現。前者在開發方面可能會更快。您將C++代碼構建到DLL中並導出單個函數。閱讀ctypes文檔以瞭解如何從Python獲取它。 – 2012-02-18 17:21:50

+3

[這個stackoverflow問題](http://stackoverflow.com/questions/145270/calling-c-c-from-python)的答案可能會有用。 – DSM 2012-02-18 17:23:13

+0

非常感謝您的鏈接,但我有一些關於編譯爲共享庫的問題。我如何在Mac OS上執行操作? – Nicholas 2012-02-19 11:39:36

回答

1

嘗試使用Swig來生成從Python調用C/C++代碼所需的膠合代碼。這比自己編寫代碼更容易。

+0

感謝您的提示。我已經在Linux上安裝了swig,並且它完美地工作,但是在mac os上,我有一些使用'ld -shared'命令的問題,它說它不能識別'-shared'。我該如何解決這個問題? – Nicholas 2012-02-19 11:33:00

+0

@Nicholas你爲什麼手工運行'ld'?您應該使用'gcc'或'g ++'進行鏈接。 – Borealid 2012-02-19 15:45:37

+0

,因爲我發現在某些網站上,但它不適用於Mac。你有什麼想法如何使用'gcc'或'g ++'我不知道所有可能的選項。我是一個新手 – Nicholas 2012-02-19 16:32:44