Почему мой двоичный код не запускается?

У меня есть двоичный файл, который работает на моей системе Squeeze Debian, но тогда он ничего не делает на моей системе Debian Wheezy (kernel Linux 3.2.0-4-amd64). Обе системы 64 бит, а исполняемый файл – 32-битный двоичный файл.

Вот результат:

me@myhost:~$ file myApp.run myApp.run: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped 

Как мне решить проблему? Я ничего не получаю, он сразу возвращается.

Запуск двоичного strace с помощью strace :

 chadmichael@heraclitus: ~/dir$ sudo strace ./myApp.run execve("./myApp.run", ["./myApp"...], [/* 17 vars */]) = 0 [ Process PID=24457 runs in 32 bit mode. ] old_mmap(0xc6d000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xc6d000) = 0xc6d000 readlink("/proc/self/exe", "/dir/myApp.run.run", 4096) = 129 old_mmap(0x8048000, 1108297, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8048000 mprotect(0x8048000, 1108294, PROT_READ|PROT_EXEC) = 0 old_mmap(0x8157000, 42979, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0x10f000) = 0x8157000 mprotect(0x8157000, 42976, PROT_READ|PROT_WRITE) = 0 old_mmap(0x8162000, 15736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8162000 brk(0x8166000) = 0x866e000 open("/lib/ld-linux.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) _exit(127) = ? 

  • Сделать цвет текста терминала другим, когда в сеансе ssh
  • Bash - Сохранять цветовые коды в переменной
  • Mx ansi-term colors в Emacs 24.x
  • Цветной выход?
  • grep --color добавляет код ANSI ESC [K - это может изменить отображаемый текст
  • Являются ли unix программы способными определять, где их выход идет?
  • Могу ли я использовать .bashrc, чтобы ls отображал цвета как на OS / X, так и на Linux?
  • Сброс до конца строки использует неправильный цвет фона на экране
  • 2 Solutions collect form web for “Почему мой двоичный код не запускается?”

    В 64-битном O / S не установлены 32-разрядные библиотеки.

     apt-get update; apt-get upgrade; apt-get install ia32-libs 

    Это обеспечит отсутствие /lib/ld-linux.so.2.

    Возможно, вам не хватает i386 libc, попробуйте установить его с помощью apt-get install libc6-i386 .

    Вы также можете добавить поддержку Multarch в свою систему, выполнив:

     dpkg --add-architecture i386 apt-get update 

    После этого вы можете установить пакет для i386 с apt-get install package-name:i386 если он поддерживает multiarch.

    Для получения дополнительной информации см.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.