库的本质就是一个打包好的代码包,一般分为静态(.lib .a)和动态(.dll .so)。静态库在主程序编译时就会被一并编译到最终的可执行文件中,然而python并没有编译这个过程,python主要使用的是动态库,即在运行时再去库里找内容。
gcc -fPIC -shared -o libsource.so source.c
其中-shared代表这是动态库,-fPIC使得位置独立,如果程序本来就是独立的话会有警告,无视即可) -o指定了输出文件,改成dll后缀一样可以用。
#ifdef _MSC_VER
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
extern "C" DLL_EXPORT int function()
网友评论