簡體   English   中英

用cython將c ++代碼編譯成pyd

[英]compile c++ code into pyd with cython

Cython將類似python的代碼編譯為C ++代碼,然后使用gcc / g ++將其編譯為pyd之類的庫。

可以說我將用純C ++編寫代碼,然后將其編譯為pyd以在Python中使用,例如,可以說我擁有以下C ++模塊

int sum(int a, int b){
    return a + b
}

是否可以在不使用PyObject,Ctype ...等工具的情況下將該代碼編譯為pyd? 還是代碼必須首先使用Cython語法編寫才能與Python兼容?

我不是這方面的專家,但正如沒有人回答,這是我的看法:

如果要避免在C語言中使用PyObject結構和“ Python.h”,則應使用cython。

問題在於**。pyd是一個特別預先配對的DLL,它公開了import ()友好接口,我認為其中包括返回PyObjects。

但是在普通的DLL或共享庫lib上使用ctypes並不困難:

>>> import ctypes
>>> mysum = ctypes.cdll.LoadLibrary("mysum.so") # Or DLL
>>> print mysum.sum(2, 3)
5

您只需要導出sum函數即可從動態庫中使用,並這樣編譯您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM