【问题标题】:Using a shared library without source code使用没有源代码的共享库
【发布时间】:2021-01-19 04:14:34
【问题描述】:

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

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

但是,我似乎要在另一台机器上使用共享库,我必须包含所有源代码。否则,我会得到OSError: invalid ELF header。

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

【问题讨论】:

    标签: go compilation shared-libraries


    【解决方案1】:

    Library 是一个二进制工件,只能在与其构建目标相同的架构上运行。 OSError: invalid ELF header 表示该库适用于不同的架构(例如,基于 x86_64 Linux 构建的库无法在 arm Linux、x86_64 MacOS X 等上加载)。

    如果您为用户打算使用它的所有架构(CPU 和操作系统)构建库二进制文件,则完全可以不使用源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 2023-03-24
      • 1970-01-01
      • 2011-08-17
      • 2015-10-04
      • 1970-01-01
      • 2016-01-28
      • 2012-06-03
      相关资源
      最近更新 更多