gcc
でコンパイルしたCプログラムを実行すると、パーミッションが拒否されました。OS X(10.8.2)で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
I次いで(Iも同じ結果と-o
フラグなしでコンパイルしようとした)gcc -c helloworld.c -o helloworld
とコンパイル。警告やエラーはありません。 ls -l
は今返す:./helloworld.o
戻って、GCCの出力を実行しようとすると
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
:私はsudoの(sudo ./helloworld.o
)で実行した場合だけ、デバッグのために
-bash: ./helloworld.o: Permission denied
を、それが返されます。
さて、検索rの多くで推奨されていたとして、私は、chmod +x helloworld.o
を使用して、実行可能フラグを設定しようとすると、
sudo: ./helloworld.o: command not found
私が見つけたesults、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コマンドラインツールの最新バージョン(Appleの開発者Webサイトから)と一緒にXcode 4.6を持っています。私はHomebrewや他のサードパーティのソースからgccをインストールしていません。それはXcodeのコマンドラインツールに付属しているgccです。
ありがとうございました!私は本当にあなたの時間をかけて読んで、診断し、助けていただき、ありがとうございます。 :)
foobar.cにエラーがあったfoobarを作成したときにこの問題が発生しました。エラーを修正すると、うまくいきました。 – quantumpotato