Go 的程序编译完成后, 最终都是单个可执行文件?

2018-01-12 09:57:56 +08:00
 sun1991

即所有的依赖都会被编译到单个可执行文件中去, 没有 DLL 之类的外部依赖?

5652 次点击
所在节点    Go 编程语言
44 条回复
Immortal
2018-01-12 10:01:48 +08:00
没有
如果想要,连 web 的那些图片资源,静态页都可以给你打包进去
xvsfezz
2018-01-12 10:10:05 +08:00
go 就是为了解决 c++那些复杂的依赖而来的
we000
2018-01-12 10:13:31 +08:00
```
go build -buildmode=shared -linkshared pkg_name
go build -linkshared main.go
```

1.5 版开始就可以动态链接了, 如果一定要这样的话...
bramblex
2018-01-12 10:15:24 +08:00
@xvsfezz

go 和 c 艹不在同一个层次好不, 有什么可以比较的?
88250
2018-01-12 10:16:31 +08:00
> go 就是为了解决 c++那些复杂的依赖而来的

然后把 Java 干翻了。
willchen
2018-01-12 10:18:54 +08:00
支持动态链接库 so 文件
amaranthf
2018-01-12 10:44:31 +08:00
@bramblex 差不多还是在同一个层次的,都是编译型、静态类型的,也就是多个 runtime 而已。
gamexg
2018-01-12 10:52:06 +08:00
是啊,
而且不需要配置就可以交叉编译,直接一次性编译出来 windows、linux、android 下的代码。
darrh00
2018-01-12 10:59:06 +08:00
看是不是用 cgo,用了就不一定了。
bramblex
2018-01-12 11:00:20 +08:00
@amaranthf

还真不是同一个层次的, 要说同一个层次的好歹拿 rust 出来啊.

以及真不喜欢 go 这个半残疾的语言.
mengzhuo
2018-01-12 11:12:23 +08:00
是的

谁再敢在生产环境给我整动态链接库的我整死谁
amaranthf
2018-01-12 11:23:43 +08:00
@bramblex 看层次怎么定义了,反正在我看来所有直接编译成 native 代码的东西都是同一个层次的。
我觉得 go 还是蛮好用的,用这东西写代码,最初你会觉得憋屈,但是憋屈惯了就会发现这东西的开发效率是真高,比 C++高一百倍,工程规模上去之后比 python 也不弱。
wowowo1
2018-01-12 11:26:35 +08:00
楼上真是为了黑而黑的黑。
wowowo1
2018-01-12 11:34:44 +08:00
不纯粹。

看编译方式和喜好了,

只看编译方式:

即便只是纯 go,编译方式不一样,( CGO 有没有打开),有些还是会调用本地的 so 文件,有些还调用 libc。

但是说到喜好:

有些直接把静态文件搞进代码。https://github.com/jteeuwen/go-bindata,编译出来还是一个独立的二进制文件。
有些直接把一坨 c 源码搞进代码。https://github.com/mattn/go-sqlite3,编译出来还是一个独立的二进制文件。
有些就要第三方 so 了,https://github.com/qiniu/iconv。


对楼上有些人:&还是 '鬼画符语言适合你。
bramblex
2018-01-12 11:45:15 +08:00
@amaranthf

比 c 艹开发效率高 100 倍的东西多了去了...
我说的是不同的使用场景, 而不是去单单是写写后端这一个领域.
如果你说就写写后端来说, go 开发效率高当然没问题, php 开发 web 效率也高啊.
说 go 半残疾是指 go 更多一个 dsl , 而不是一个现代通用编程语言, 跟 php 一个道理.

所以我不喜欢 go.
bramblex
2018-01-12 11:49:56 +08:00
已 block 楼上那种不懂乱喷的.

鬼画符?
物理数学那么多符号还不都是鬼画符?
你随便开一个算法的讲解难道不是一堆鬼画符?
你随便打开一个计算机相关领域的论文难道不全都是鬼画符?

不懂没问题, 不要瞎比比.
不然我会觉得 goer 都沦落到 phper 水平了.
algery
2018-01-12 11:58:47 +08:00
@bramblex #16 沦为???你这个素质也高不到哪里去
algery
2018-01-12 12:00:04 +08:00
@algery #17 哦。。是沦落。。那素质更差了
xwhxbg
2018-01-12 12:09:18 +08:00
@bramblex 现代通用编程语言,是啥意思,求科普
cholerae
2018-01-12 12:10:45 +08:00
看眼 go build 的帮助就知道了

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

https://www.v2ex.com/t/422252

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

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

© 2021 V2EX