go 开发的软件移植转换为其他语言

2022 年 2 月 23 日
 acbot

go 开发的软件编译后一般相对都比较大,go 有没有类似 Java JDK/JRE 或者是 c/c++ 运行库这样的东西,这样是不是就可以减小一些编译后的体积,特别是有多个 go 编译后的文件。由于嵌入式设备存储空间有限,想把 go 开发的项目移植转换成 c/c++, 是不是 只要 go 用到的库有 c/c++ 版本就可以完成移植转换,有没有工具能直接把 go 代码转换成 c 代码 然后编译。或者是这样的软件参考 go 项目思路直接重新实现就可以了,没有必要转换。

3250 次点击
所在节点    Go 编程语言
27 条回复
shynome
2022 年 2 月 24 日
@acbot 看项目,共享的 std 动态库有 30M ,共享状态下的 http server 大小是 2M ,默认编译有裁剪的大小则是 11M ,hello-world 的区别则是 20K 和 6M ,实践下看哪种方式更适合
Kinnice
2022 年 2 月 24 日
upx 压缩一下。
acbot
2022 年 2 月 24 日
@shynome
@Kinnice 我都试试,谢谢
lysS
2022 年 2 月 24 日
你的什么嵌入式?有操作系统嘛?有操作系统的话我觉得 go 的编译大小不算是问题把?
lysS
2022 年 2 月 24 日
对了,编译时加上 `-ldflags "-s -w"` 大概可以减少一半的体积
acbot
2022 年 2 月 24 日
@lysS 谢谢,不知道 `-ldflags "-s -w"` 再加 #22 upx 方法能不呢个达到预期!
xsen
2022 年 2 月 25 日
-ldflags "-s -w" + upx 之后,大小可以缩小到 25-30%

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/835912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX