如何将 C 动态库嵌入到 Go 二进制文件中

问题描述 投票:0回答:1

我有一个 Golang 项目,它使用我公司另一个团队的一些 C 库,这些库带有共享对象,并且很难静态编译。 我想保持项目的二进制文件可移植,因此我想使用

import "embed"
将共享对象保留在二进制文件中,然后在程序启动时但在项目的 C 部分加载之前将它们转储到临时目录中.

我可能可以将项目中使用 C 代码的部分编译成 Go 插件,然后在加载该插件之前在主二进制文件中执行所有嵌入内容,但我觉得我缺少一种更简单的方法。

有什么方法可以阻止 Go 在解压 C 动态库之前尝试加载它们吗?或者也许在 C 端阻止它这么早尝试加载它们?

c go portability cgo
1个回答
0
投票

也许,你想使用 C 中的

dlopen

© www.soinside.com 2019 - 2024. All rights reserved.