为什么如今的库还会被编译成 shared library 来用?内存和磁盘空间都已经足够了呀

2019-01-13 18:32:51 +08:00
 fhc023

主要是历史原因吗?是不是还有其他的理由?

6986 次点击
所在节点    Linux
59 条回复
ysc3839
2019-01-13 18:36:01 +08:00
足够不代表可以随意浪费,当节约的成本几乎为 0 的时候为什么还要浪费?
doun
2019-01-13 18:37:24 +08:00
版本管理等,编译时间等? golang 不就是全静态编译链接了吗
Osk
2019-01-13 18:40:01 +08:00
想起了被 node_modules 支配的恐惧,,,
across
2019-01-13 18:41:50 +08:00
为什么不用 shared lib,反而要采用浪费内存和磁盘的方法?
thedrwu
2019-01-13 18:41:51 +08:00
底层库的 hotfix/upgrade 不会牵一发而动全身

Windows hook

LGPL

obj/linker 的兼容性

等等
fhc023
2019-01-13 18:42:01 +08:00
哦 我是觉得相对它的收益 成本有点高。作为库的使用者,得保证开发和生产环境的这些依赖版本都一致。还是很痛苦的。
wbing
2019-01-13 18:43:11 +08:00
改一个库的功能,把库替换了就好了,就不用把使用这个库的程序再重新编译一次
justou
2019-01-13 18:43:31 +08:00
fhc023
2019-01-13 18:44:04 +08:00
@doun 我很喜欢 go 呀 但是有很多有现有 c 库的情况就很尴尬。没太试过用 go 调用 c 不知道好不好
shyangs
2019-01-13 18:44:44 +08:00
想起了被 node_modules 支配的恐惧
::doge::
fhc023
2019-01-13 18:45:27 +08:00
@wbing 如果编译成 static library 的话也是不用重新编译的 只是打包一下
fhc023
2019-01-13 18:47:14 +08:00
@Osk 哈哈 package-lock.json
thedrwu
2019-01-13 18:54:06 +08:00
@fhc023 如果操作系统的 runtime 打个补丁,需要重新安装所有的程序。还是说每个程序都静态链接一份操作系统?
tewilove
2019-01-13 19:00:28 +08:00
库克:mmp。
安卓:内存可能只够开个 QQ。
WordTian
2019-01-13 19:07:40 +08:00
并不够,比如 office 软件要都搞成静态链接,开了这个你就不用干别的了
catalina
2019-01-13 20:31:24 +08:00
别开玩笑,你想折腾死那些官方源和镜像源吗(笑哭)
fhc023
2019-01-13 20:35:51 +08:00
@thedrwu 有道理
fhc023
2019-01-13 20:38:11 +08:00
我二了
misaka19000
2019-01-13 20:45:20 +08:00
我觉得对于客户端程序动态链接是有必要的,而对于服务端的程序则比较适合使用静态链接的程序
danc
2019-01-13 20:58:53 +08:00
开玩笑吧。比如 windows 操作系统,你看有多少 dll 文件,你要静态链接了,编译一次得多久,而且你的内存能放得下不

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

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

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

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

© 2021 V2EX