从终端执行我编译的任何 C 程序时gcc
,我收到权限被拒绝错误。
首先,我已经验证并修复了我的驱动器上的权限(在此之前,发生了同样的问题)。
为了说明和隔离问题,我将向您展示这个超简单的 Hello World 程序会发生什么(其他程序也会发生同样的事情):
#include <stdio.h>
main()
{
printf("Hello World");
}
现在,我将其另存为helloworld.c
. 此时,从桌面ls -l
返回:
total 8
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
然后我编译gcc -c helloworld.c -o helloworld
(我也尝试过不带-o
标志的编译,结果相同)。没有警告或错误。ls -l
现在返回:
total 16
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
-rw-r--r-- 1 michael staff 724 Mar 13 14:16 helloworld.o
尝试执行 gcc 的输出,并./helloworld.o
返回:
-bash: ./helloworld.o: Permission denied
只是为了调试,如果我用 sudo ( sudo ./helloworld.o
) 执行,它会返回:
sudo: ./helloworld.o: command not found
现在,如果我尝试使用 设置可执行标志chmod +x helloworld.o
,正如我发现的许多搜索结果所建议的那样,ls -l
返回:
total 16
-rw-r--r-- 1 michael staff 56 Mar 13 14:08 helloworld.c
-rwxr-xr-x 1 michael staff 724 Mar 13 14:16 helloworld.o
但是,尝试使用./helloworld.o
now 返回:
-bash: ./helloworld.o: Malformed Mach-o file
现在,为了调试,where gcc
返回:
/usr/bin/gcc
所以,你可以看到我没有使用第三方gcc
。
有谁知道可能是什么问题?我试过四处寻找,但找不到任何可行的解决方案。我之前遇到过同样的问题,并且从那时起重新安装了 OS X(出于不同的原因),并且在干净且有组织的开发环境中仍然存在这个问题。作为参考,我使用的是 OS X 10.8.2 并拥有 Xcode 4.6 以及最新版本的 Xcode 命令行工具(来自 Apple 的开发人员网站)。我没有从 Homebrew 或任何其他第三方来源安装 gcc;它是 Xcode 命令行工具附带的 gcc。
非常感谢您的帮助!我非常感谢您花时间阅读、诊断并提供帮助。:)