我在Windows 7 Enterprise x64上使用Eclipse Oxygen.2版本(4.7.2)x64,Cygwin 2.9.0 x64(我在工作中)。
当尝试编译一个简单的hello-world项目时,一切正常,所以在验证了Cygwin工具链正在工作之后,我删除了示例项目并导入了一大堆我从SVN中提取的项目并且已经过验证工作在同事的电脑上。
当我建立一个项目时,我得到:
ar -r "libAAA.a" ./A.o ./B.o ./C.o ./D.o ./E.o ./F.o
ar: creating libAAA.a
ar: libAAA.a: Permission denied
make: *** [makefile:46: libAAA.a] Error 1
(每个依赖项目的类似消息,即编译器生成的目标文件,但ar
工具失败)
所有文件名都已修改(抱歉,NDA ...),但它们都出现在当前文件夹中(Debug
)
我当时认为文件夹权限有问题,但我注意到目标文件是在同一个位置创建的,没有任何问题。创建了.a
文件,其中只有一个标题(!<arch>\n
),因此文件夹写入权限不是问题。
当我从提升的命令行(cmd-&gt;以管理员身份运行)运行相同的命令ar -r "libAAA.a" ./A.o ./B.o ./C.o ./D.o ./E.o ./F.o
时,一切正常。
所以我的理解是ar
工具指的是普通用户无法访问的内容,因此需要提升。
我能够以管理员身份运行某些东西,但在工作中是一个独立的用户,那么我无法访问该用户创建的任何文件,我每次都要输入30+字符的密码,并且还有其他一些原因,包括安全性,而不是。
有没有人有类似的问题?有解决方法吗?我怎么能检查ar
在幕后做什么(除了反编译成汇编之外)。