- 论坛徽章:
- 2
|
回复 #1 zjzfb 的帖子
再顶一下, 支持lz的工作~~~
原帖由 zjzfb 于 2009-8-18 13:42 发表 ![]()
1. Linux软件开发,在大量动态库的情况下,避免root权限、避免依赖地狱,就是如同Windows软件,将冲突限定于自己的程序目录
关于这个问题。 "冲突限定于自己的程序目录"的意思是将所有需要的dll都拷贝到exe同目录下?
这样…… 和直接使用静态链接有什么区别吗?
也还是有一点区别的, 理论上来说, 替换(或者说升级)的可能性依然存在, exe的发布者, 可以测试该exe所依赖的dll的高版本是否会产生冲突, 并提出可以使用的dll版本的组合,让用户自由选择dllA的x版本、dllB的y版本。
但有多少公司真这样做了? 而且就方便来说, 还是整体打包下载较好。
而且, dll的另一个优势: 共享代码、减少内存使用, 肯定是要被抹杀了。
我觉得吧, 如果某个库打算做成dll的形式, “对以前版本的兼容性”就是一种义务。
Windows下诸多API, 要么操作的是HANLDE, 要么是一个incomplete的指针。
一旦出现定义完整的结构体, 第1个成员必定是size, 并且使用前必须 size = sizeof(S);
这不是没有道理的。
如果大部分API都能做到对以前版本兼容, 具体的说, 是“继续满足以前版本与客户代码之间的契约”, 那很多问题就简单多了, 往上升级即可。
有点天真的想法…… |
|