为什么静态链接Python可以在Linux上使用动态库
在Windows上,我不能将pyd用于静态pythoncore,因为动态库无法直接获取python函数地址。 但我发现它可以在Linux上做到这一点。我使用了为什么静态链接Python可以在Linux上使用动态库,python,Python,在Windows上,我不能将pyd用于静态pythoncore,因为动态库无法直接获取python函数地址。 但我发现它可以在Linux上做到这一点。我使用了--禁用共享来配置编译。因此库仍然可以用于动态导入。 他们之间有什么不同?可以在Windows上使用静态C扩展进行动态导入吗?可以使用objdump-R Python检查Python二进制文件导出的符号吗。Windows二进制文件不输出符号,但Linux二进制文件输出符号。是的,Linux输出python符号。在Windows上,事件可以导
--禁用共享来配置编译。因此库仍然可以用于动态导入。
他们之间有什么不同?可以在Windows上使用静态C扩展进行动态导入吗?可以使用objdump-R Python
检查Python二进制文件导出的符号吗。Windows二进制文件不输出符号,但Linux二进制文件输出符号。是的,Linux输出python符号。在Windows上,事件可以导出条目(如PyInit_XXX),但.dll
和.exe
之间有单独的内存空间(它们链接到不同的C运行时,/MT
和/MD
)。因此动态库不能直接使用python API。您可以使用objdump-rpython
检查python二进制文件导出的符号吗。Windows二进制文件不输出符号,但Linux二进制文件输出符号。是的,Linux输出python符号。在Windows上,事件可以导出条目(如PyInit_XXX),但.dll
和.exe
之间有单独的内存空间(它们链接到不同的C运行时,/MT
和/MD
)。因此,动态库不能直接使用python API。