2009-06-17 3 views
8

...私はプログラム、いくつかの基本的なOpenGLを構築しました許可は、それを実行すると、私自身のプログラム(Ubuntuの)正確に関連のプログラミングない

を実行している拒否されたSH:/ blabla許可が拒否されました。どのように私はその不平を作ることができますか?

プログラムはちょうど回転の正方形を作り、私が持っているUbuntuの9.4

ちょうど{})(メインさえintは質問の

+0

プログラムのファイルに対するアクセス許可は何ですか? –

+0

chmod 777を試してください:P – KdgDev

+0

あなたが入力しているコマンドはなんですか? – Svante

答えて

1

カップルに動作しないことが判明:

  1. がありますファイルにアクセス許可が正しく設定されていますか?
  2. インタープリタへのパスが正しく設定されていますか?
+0

私はそれらのことについて知らない...それは新しいコンピュータでのみ発生する 私は同じcompilaer同じubuntuを持っていただけでそれを実行する – csiz

6

どのようにコンパイルしていますか?あなたはmakefileを投稿できますか?実行した場合

chmod +x myPorgram 
./myProgram 

何かが変更されますか?

+0

私はcodeblocksでコンパイルしています。私は何もしなかったし、sudoで試してみました。 – csiz

1

上記のchmod + xファイル以外に、別の問題はライブラリがないことがあります。使用lddは、必要なライブラリを確認するには:

$ ldd /bin/sh 
    linux-vdso.so.1 => (0x00007fffb43fe000) 
    libc.so.6 => /lib/libc.so.6 (0x00007fc4abe11000) 
    /lib64/ld-linux-x86-64.so.2 (0x00007fc4ac183000) 

これらの行のいずれかが不足しているライブラリが表示されている場合、あなたはあなたのプログラムを実行する前にインストールする必要があるか知っているでしょう。

あなたのプログラムがスクリプト(シェル、perl、python、またはその他のテキストベースのプログラム)である可能性もあります。最初の行は次のようになります。

#!/usr/bin/perl 

このファイルが見つからない場合は、アクセス権拒否エラーが発生します。

+0

動的実行可能ファイルではありませんが、アクセス許可ページに実行可能オプションがマークされていて、chmod + xを実行しました... int main(){}のために余分なライブラリがあるとは思っていますが – csiz

+0

" "? プログラムのコンパイル方法を教えてください。 $ file/bin/bash /bin/bash:ELF 64ビットLSB実行可能ファイル、x86-64、バージョン1(SYSV)、動的にリンクされた(共有を使用している)など、 "yourexefile" libs)、GNU/Linux 2.6.15のために削除されました 余分なライブラリについては、main(){}だけでは意味がありません。もしOpenGLライブラリでコンパイルされていれば、プログラムを実行する必要があります。 –

+0

私はcodeblocksのビルドボタンを押しています...今まで他のコンピュータで動作していましたが、私はリンクされていないライブラリもコンパイルされ、実行されませんでした。ファイルテスト:テスト:ELF 32ビットLSB実行可能ファイル、インテル80386、バージョン1(SYSV)、動的リンク(共有ライブラリを使用)、GNU/Linux 2.6.15用、取り除かれていない – csiz

0

straceでコマンドを実行して、成功したシステムコールとその停止場所をトレースしてみてください。

これは、あなたがそれを起動するかもしれない方法では、あなたが得るか

strace ./blabla 

エラーまたは「実行形式エラー」のようなものを「許可が拒否されましたか」?ファイル上でchmod +rxを指定すると、「許可が拒否されました」というヒットは発生しません。

0

また、ユーザー名がビデオグループに含まれていることを確認する必要があります。/etc/groupを確認し、ユーザ名が "video"行に表示されていることを確認してください。

5

それが64ビットシステム上で32ビットアプリケーションを実行しようとするときは、この問題を取得

1

を「マウント」を実行してNOEXECとしてマウントされますかどうかを確認するためにマウントポイントを確認してください。

a. file (executable name) 
b. uname -a 

を実行し、両方が「i386」または「amd64」であることを確認してください。

それらが同じでない場合は、this articleを見て:

14

私は同じ問題を抱えていたし、私がオプションを設定すると、私のパーティションがnoexecで 猫の/ etc/mtabを

としてマウントされたように見えました/ etc/fstabに私はexec、userを書きましたが、デフォルトで "user"オプションは "noexec"を設定しているようです。私はこれらの2つの順序をユーザーに変更すると、execはすべて正常に戻りました!

希望します。

+2

+1問題を解決しました! – jimifiki

2

私はUbuntuでCodeBlocksを使用しており、この正確な問題は数多くありました。 KermiDTが言ったことはまさに解決策です(私は十分なポイントを持っていれば投票しました)
"user"オプションはデフォルトで "noexec"を設定します。
/etc/fstabでは、userの後にexecを追加するだけです。 、つまり私のものは次のようになります:
/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0
しかし、スペーシングは少し外れていますが、あなたはそのアイディアを得ます。

関連する問題