2010-11-22 8 views
2

私はRed Linux 7.3(以前は知っていました)を実行しています。小さなプログラムを作成し、nasmでコンパイルすることができます。数ヶ月間、物事はうまくいっています。そして今は何らかの未知の理由で、私はコンパイルしたプログラムを実行できません。linuxは実行可能なすべての実行ファイルにバイナリファイルを実行できません。chmod 777は役に立ちません。

nasm file.s //used to work just fine, then I'd execute ./file 

私が./fileを実行すると、最初に以前は発生していなかった「許可が拒否されました」が表示されます。その後、私はchmod +777ファイル、私は "バイナリファイルを実行することはできません"取得します。

なぜこのようなことが起こっているのかわかりませんが、何もコンパイルしていないので、非常に不満です。

rootとしてログインしても何も変更されません。 すべての提案は大歓迎です、よろしくお願い致します!

+0

ファイルをコンパイルした後、 'ls -l'の出力を投稿してください。 「実行できません」というエラーは、誤って生成されたバイナリ(リンクされていない、間違ったアーキテクチャなど)によってのみ発生する可能性があります。 –

答えて

1

これは、操作しているファイルシステムがnoexecオプションでマウントされている場合に発生します。 mount | grep noexecを実行して確認し、現在の作業ディレクトリに問題がないかどうかを確認できます。

+0

提案していただきありがとうございます。私はそれをタイプし、何も返されませんでした。 –

+0

それは奇妙に聞こえるが、私はRed Hatに慣れていない。普通の 'mount'の出力はどうですか? – dennycrane

+0

これが問題だった場合、エラーメッセージは「バイナリファイルを実行できません」ではなく、「Permission denied」でした。 – zwol

0

システムのいくつかの変更を/ var/logで調べると、このようなことが起きる可能性があります。

3

nasmは実行可能ファイルを生成しませんが、gcc -cのようなオブジェクトファイルだけを生成します。それでもリンカを実行する必要があります。

N.B:「0777は、ほとんど常に間違っている。」

2

があなたのバイナリにfileコマンドを実行し、それらが実行ファイルとして正しく識別していることを確認してください。

lddコマンドも試してみてください。まったく同じ理由で失敗する可能性は非常に高いですが、それは価値があります。

1

"バイナリファイルを実行できません"は、エラーコードENOEXECのメッセージstrerror(3)です。それは非常に特別な意味を持っています(execve(2)のためのmanページを引用)

[ENOEXEC]   The new process file has the appropriate access 
        permission, but has an unrecognized format 
        (e.g., an invalid magic number in its header). 

その手段が何であるかだから、あなたのnasm呼び出しが実行可能ファイルを生成するのではなく、何か他のものされていません。 John Kugelmanが示唆しているように、fileコマンドはあなたにそれが何であるかを伝えます(user502515はリンクされていないオブジェクトファイルである可能性が非常に高いですが、自分自身でnasmを使ったことはありません)。

インテルのbizarro-world構文を使用しないアーキテクチャ用のアセンブリコードを書き直す必要はなく、GAS/"AT & T"アセンブリ構文を今すぐ学習すればよいでしょう。 。そして私はを実行しますあなたが実際にが手に最適化する必要がある内部ループサブルーチンのためのアセンブリを使用していることを願っています。

1

これはちょうど私に起こりました。

file <executable name>

その出力<file name> ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

を実行した後、問題は、私は32ビットマシン上64ビットアプリケーションを実行しようとしていたということでした!

関連する問題