使用没有源代码的共享库

Using a shared library without source code

我正在使用命令构建可用于我的 python 程序的共享库。

go build -o program.so -buildmode=c-shared myprogram/program.go

不过,我好像要在另一台机器上使用共享库,我必须包含所有的源代码。否则,我会得到 OSError: invalid ELF header.

是否可以在没有源代码的情况下使用共享库?

库是一个二进制工件,只能在与其构建时相同的体系结构上工作。 OSError: invalid ELF header 表示该库适用于不同的体系结构(例如,基于 x86_64 Linux 构建的库不会在 arm Linux、x86_64 MacOS 上加载X 等等)。

如果您为用户打算使用它的所有体系结构(CPU 和 OS)构建库二进制文件,那么在没有源代码的情况下使用是完全可能的。