执行任何我用
尝试执行使用gcc编译的输出,使用
现在,如果我尝试使用
然而,现在尝试使用
现在,为了调试的目的,
所以,你可以看到我没有使用第三方的
gcc
编译的C程序时,从终端得到一个拒绝访问错误。首先,我已经验证并修复了我的驱动器上的权限(在此之前,同样的问题仍然存在)。为了说明和隔离问题,我将向您展示这个超级简单的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
执行会返回以下结果:-bash: ./helloworld.o: Malformed Mach-o file
现在,为了调试的目的,
where gcc
返回:/usr/bin/gcc
所以,你可以看到我没有使用第三方的
gcc
。
有人知道问题出在哪里吗?我尝试过搜索,但是没有找到可行的解决方案。我之前遇到了同样的问题,现在重新安装了OS X(因为其他原因),但是在一个干净和有组织的开发环境中仍然存在这个问题。供参考,我使用的是OS X 10.8.2,并安装了Xcode 4.6以及来自Apple开发者网站的最新版本的Xcode命令行工具。我未安装Homebrew或其他第三方来源的gcc;它是随Xcode命令行工具一起提供的gcc。
非常感谢您的帮助!我真的很感激您抽出时间阅读、诊断并提供帮助。 :)