簡単に:Linuxカーネル2.6.32コンパイル済みの実行ファイルは、Linuxカーネル2.6.24カーネルと互換性がありませんか?カーネルはコンパイルされたファイルに対して後方互換性を保証していませんか?
私は、Linux 2.6.32カーネルのシステムでコンパイルした実行可能ファイルを持っています。
[email protected]:/tmp/deployed$ ./qt-workstation
bash: ./qt-workstation: Arquivo ou diretório não encontrado
テキストは、「ファイルまたはディレクトリが見つかりません」という意味が、ファイルが存在している:私は、Linux 2.6.24システムにコンパイルされたファイルを転送するとき、実行するときに、私は次のエラーを取得します。 straceの出力:
execve("./qt-workstation", ["./qt-workstation"], [/* 46 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f78e84f5000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7f78e84f5000, 4096) = 0
exit_group(1) = ?
カーネルのバージョンが問題であるかどうかはわかりませんが、私は問題でいくつかの光を探しています。残念ながら私はまだ小さなコードで問題を再現できませんでした。どんな提案も私を助けるかもしれません。 –
私は、テキストは「ファイルまたはディレクトリが見つかりません」という意味なので、[strace](http://linux.die.net/man/1/strace)を使って見つからないファイルを探してください。 – jimw
Uh、no。 "カーネル"は*バイナリ形式*の下位互換性を保証するかもしれないが、これは "コンパイルされたファイル"や "リンクされたライブラリ"ではない。しかし、一般的に、カーネルAPIと確立されたライブラリでは、壊れた変更は却下され、非常にまれです。必要なライブラリが存在しない場合もあります。いずれにしても、「カーネル」による保証はありません。 –