【发布时间】:2013-10-17 15:44:00
【问题描述】:
我的问题如下:
- 我的机器上有一个 go 二进制文件
- 我需要从该二进制文件编译一个外部 .go 文件
- 编译后,我需要将编译后的 go 文件链接到当前二进制文件中,以便使用刚刚编译的 go 代码。
你认为这可能吗?
我做了一些研究,似乎不可能,但我可能忽略了一些东西。
谢谢:)
第一个 go 二进制文件将包含类似
func main() {
// Here I need to compile an external go file (or package) which contains
// The definition of runFoo()
// Once the file/package is compiled and linked I need to call the compiled code
runFoo()
// Continue the execution process normally here
}
【问题讨论】:
-
解释你想要达到的目标。特别是第 2 步让我感到困惑。
-
你不能这样做。但是,如果您说明您真正想要做什么,我们可以提供解决方案。
-
我刚刚在这里创建了一个示例文件:play.golang.org/p/CiAe69vkfR。我希望它能让事情更清楚。
-
Go 目前不支持动态链接。好吧,它可以链接 C .dll/.so 文件,但没有办法动态链接到 Go 二进制文件(或从 Go 源创建 .dll/.so)。我已经看到在 golang-nuts 上完成了一些工作,但我知道它目前还没有准备好发布。
-
我相信我们在 go-nuts 上读到了相同的主题;)感谢您确认这是不可能的。
标签: go