ターミナルからコンパイルした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の開発者向けWebサイトから)を使用しています。Homebrewまたは他のサードパーティソースからgccをインストールしていません。Xcodeコマンドラインツールに付属しているのはgccです。
ご助力ありがとうございます!読んで、診断して、助けを提供するために時間を割いていただき、本当にありがとうございます。:)