从go二进制文件动态构建和链接

从go二进制文件动态构建和链接,第1张

从go二进制文件动态构建和链接

更新: 现在可以在主线Go中执行此 *** 作,请参阅Go执行模式

从Go 1.5发行说明中:

仅对于amd64体系结构,编译器具有一个新选项-dynlink,该选项通过支持对外部共享库中定义的Go符号的引用来辅助动态链接。

旧答案其他选项的有用讨论 ):

当前无法在主行Go中创建动态链接的库*。已经有一些讨论,因此将来可能会看到支持。但是,有一个名为goandroid的第三方go项目需要与您所需的功能相同的功能,因此它们维护的修补程序应允许您对官方的Go代码库进行修补,以支持您所请求的动态链接支持。

如果要使用标准的Go运行时,建议使用以下一种。从其他程序中调用Go程序,并使用以下方法进行通信:

  1. 管道沟通
  2. UNIX域套接字
  3. 共享内存的映射区域。
    1. 也就是说,在/ dev / shm上创建一个文件,并使两个程序都映射它。
    2. Go mmap库:https://github.com/edsrzf/mmap-go

每个连续的选项将花费更多的精力进行设置,具体取决于平台,但可能会比前一个选项更强大。

*注意: 即Windows环境中的DLL和UNIX / Linux环境中的.so文件。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5462969.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存