Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么静态链接Python可以在Linux上使用动态库_Python - Fatal编程技术网

为什么静态链接Python可以在Linux上使用动态库

为什么静态链接Python可以在Linux上使用动态库,python,Python,在Windows上,我不能将pyd用于静态pythoncore,因为动态库无法直接获取python函数地址。 但我发现它可以在Linux上做到这一点。我使用了--禁用共享来配置编译。因此库仍然可以用于动态导入。 他们之间有什么不同?可以在Windows上使用静态C扩展进行动态导入吗?可以使用objdump-R Python检查Python二进制文件导出的符号吗。Windows二进制文件不输出符号,但Linux二进制文件输出符号。是的,Linux输出python符号。在Windows上,事件可以导

Windows上,我不能将pyd用于静态pythoncore,因为动态库无法直接获取python函数地址。 但我发现它可以在Linux上做到这一点。我使用了
--禁用共享
来配置编译
。因此
库仍然可以用于动态导入。

他们之间有什么不同?可以在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。