庫的本質就是一個打包好的代碼包,一般分為靜態(tài)(.lib .a)和動態(tài)(.dll .so)。靜態(tài)庫在主程序編譯時就會被一并編譯到最終的可執(zhí)行文件中屡穗,然而python并沒有編譯這個過程撒蟀,python主要使用的是動態(tài)庫虽风,即在運行時再去庫里找內容咆瘟。
gcc -fPIC -shared -o libsource.so source.c
其中-shared代表這是動態(tài)庫嚼隘,-fPIC使得位置獨立,如果程序本來就是獨立的話會有警告袒餐,無視即可) -o指定了輸出文件飞蛹,改成dll后綴一樣可以用。
#ifdef _MSC_VER
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
#endif
extern "C" DLL_EXPORT int function()