都啥时代了, 还不给看代码. 现在技术根本不值钱. 比你写的好的代码多了去了, Go源码本身就开源

要不开源可以啊, 直接做成服务


说说使用plugin的问题:

  1. 你的plugin和用户代码使用的go 编译器版本必须一样
  2. 你的plugin和用户代码依赖同样的库的话,依赖库的版本必须完全一致
  3. plugin不支持windows
  4. 还有很多细节。。。

参考一下这个:https://www.reddit.com/r/golang/comments/b6h8qq/is_anyone_actually_using_go_plugins/

plugin更适合项目内部使用,你有全部的源码

比如我在学MIT6.824分散式系统这门课的时候,第一个lab是MapReduce,就用了plugin

MapReduce框架会通过plugin载入用户提供的map函数和reduce函数,每次共同依赖的代码一变动就需要重新编译。

参考:https://pdos.csail.mit.edu/6.824/labs/lab-mr.html

发布于 2020-04-15继续浏览内容知乎发现更大的世界打开Chrome继续乌合之众乌合之众老夫聊发少年狂

方法有很多,例举下面几个简单的:

  1. 指定go build参数 -buildmode=plugin,编译为go plugin,让别人通过插件方式调用
  2. 写成一个RPC服务程序(闭源),然后包装一个客户端(开源)。
  3. 指定go build参数为-buildmode=archive,编译为静态库。

参考:

用 Go Plugin 构建模块化系统

Go生成go动态库或静态库_移动开发_github_33719169的博客-CSDN博客

请问 .a 是什么文件?如何使用 .a文件?


方法有很多,例举下面几个简单的:

  1. 指定go build参数 -buildmode=plugin,编译为go plugin,让别人通过插件方式调用
  2. 写成一个RPC服务程序(闭源),然后包装一个客户端(开源)。
  3. 指定go build参数为-buildmode=archive,编译为静态库。

参考:

用 Go Plugin 构建模块化系统

Go生成go动态库或静态库_移动开发_github_33719169的博客-CSDN博客

请问 .a 是什么文件?如何使用 .a文件?


可以用C++实现, 然后导出C API给golang用


不用golang


编译成so plugin


只开源sdk不就行了么


谢邀。 搞成一个dll


dll 一个公司的 可以rest api


Internal目录应该是你需要的。


编译成静态库吧。最好还是开源


做成API服务。开源挺好,大家一起进步嘛


推荐阅读:
相关文章