SWIG 生成的包装器是否可移植?
Are SWIG generated wrappers portable?
SWIG 程序生成一个包装器以与 C 代码交互,在本例中为 Python。虽然它所连接的已编译 C 代码显然不可移植,但 SWIG Python 包装器本身可以吗?我是否只能生成一次此包装器并将其与我的代码一起发送,或者最终用户是否需要在他们的构建过程中重新生成 SWIG 包装器代码?
如果最终用户有相同的OS,我认为它们是便携的。据我了解,您只需要 SWIG 部分的 example.pyd 和 example.py 文件。
至少在我的机器上,如果我将这些文件移动到不同的文件夹,我可以导入并 运行 模块正常。不需要源 .c、_wrap.c 或 .i 文件。
Importing a .pyd (created with SWIG) in Python 2.7.3 on Mac
我认为在 UNIX OS(Linux 和 MacOS)中,它可能还可以。但是 link(第二个答案)中的人说 pyd 仅适用于 windows。所以最终用户可能不得不重新编译东西。
我想还需要考虑的一件事是 32 位与 64 位。我对此一无所知。
SWIG 程序生成一个包装器以与 C 代码交互,在本例中为 Python。虽然它所连接的已编译 C 代码显然不可移植,但 SWIG Python 包装器本身可以吗?我是否只能生成一次此包装器并将其与我的代码一起发送,或者最终用户是否需要在他们的构建过程中重新生成 SWIG 包装器代码?
如果最终用户有相同的OS,我认为它们是便携的。据我了解,您只需要 SWIG 部分的 example.pyd 和 example.py 文件。 至少在我的机器上,如果我将这些文件移动到不同的文件夹,我可以导入并 运行 模块正常。不需要源 .c、_wrap.c 或 .i 文件。
Importing a .pyd (created with SWIG) in Python 2.7.3 on Mac
我认为在 UNIX OS(Linux 和 MacOS)中,它可能还可以。但是 link(第二个答案)中的人说 pyd 仅适用于 windows。所以最终用户可能不得不重新编译东西。
我想还需要考虑的一件事是 32 位与 64 位。我对此一无所知。