【发布时间】:2018-04-27 23:26:10
【问题描述】:
在为 linux 构建时如何包含 SO 文件?对于 Windows,我只是将 dll 放在同一个文件夹中,但这不适用于 linux 构建。特别是,我正在构建一个 go sciter 项目,需要在可执行文件/包中包含libsciter-gtk-64.so。
【问题讨论】:
-
将 dll 添加到源文件夹不会将其构建到二进制文件中。请说明你在做什么。
在为 linux 构建时如何包含 SO 文件?对于 Windows,我只是将 dll 放在同一个文件夹中,但这不适用于 linux 构建。特别是,我正在构建一个 go sciter 项目,需要在可执行文件/包中包含libsciter-gtk-64.so。
【问题讨论】:
我解决这个问题的方法是使用一个额外的工具,它具有可选桌面文件和其他元数据的额外好处。 AppImage 解决了库问题,我所要做的就是使用 /usr/lib/ 中的 so 文件创建一个 AppImage 并通过它们的命令构建。
【讨论】:
@Robert 的解决方案很好。也可以将 *.so 文件放在与可执行文件相同的目录中,并使用以下行创建一个 start.sh 脚本:
LD_LIBRARY_PATH="$(dirname "$0")" "$(dirname "$0")/your_executable"
【讨论】: