【发布时间】:2012-06-22 15:36:16
【问题描述】:
我有一个最初为 Linux 开发的库。我现在正在将其移植到 Cygwin。我注意到我的 Cygwin 系统上的每个库都是这样安装的:
- DLL (
cygfoo.dll) 安装到/usr/bin模式755 - 静态存档 (
libfoo.a) 安装到/usr/lib模式 644 - 导入库(
libfoo.dll.a)安装到/usr/lib模式755
前两个对我来说很有意义。 DLL 是可执行文件,所以它们应该是模式 755。静态存档不是可执行文件,所以它们是模式 644。然而,第三个对我来说似乎很奇怪。导入库实际上是静态存档,而不是可执行文件(ar -t libfoo.dll.a 列出了存档的内容)。不应该也安装模式644吗?
为什么 Cygwin 的约定是安装模式为 755 的导入库?
【问题讨论】:
-
@Wooble:那是因为
.dylibs 和.sos 是可执行文件。档案不是。 -
您可以尝试将其中一个关键的 dll.a 文件更改为 644,看看它会在哪里中断,如果它坏了。
-
@DanMoulding,
library是 2012 年标签清理的一部分。请不要重新创建它。 -
@Charles:我强烈反对删除。这不是社区决定,而是在没有充分理由的情况下强加给我们(当然,没有人会知道这一点,因为所有证据都已被这种无情杀害无辜标签的肇事者摧毁)。请停止删除它。程序员不能来 SO 来询问、学习和教授作为主要学科的库,这有点可笑。有很多要问、要学习和要教的内容,例如:设计、实施、安装。
-
@DanMoulding,不幸的是标签被滥用了,我完全支持让它死掉。它不用来谈论设计和实现,而是“我需要 X 的库”或“我正在使用 X 库”,其中 X 是另一个标签。在一般用途中,它在问题中添加了 nothing。你提到的东西完全是主题,但是当它继续被不知情的用户滥用时,使用名为“库”的标签来分类相关问题将再次适得其反。
标签: cygwin libraries file-permissions