Чому я отримую "команду не знайдено", коли існує двійковий файл?


8

Ось моя проблема. Я тільки що склав збірку Linux testsу своїй віртуальній віртуальній машині VirtualBox. Коли я запускаю його, я отримую:

bash: ./tests: No such file or directory

Я провів деякі дослідження, і виявив, що це може мати дозволи, відсутні бібліотеки чи іншу архітектуру. Тому я перевірив:

  • ls -al tests:

    -rwxr-xr-x 1 me me 9948598 2011-02-21 01:54 tests
    
  • file tests

    tests: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
    
  • uname -a

    Linux DevBox 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:44 UTC 2011 x86_64 GNU/Linux
    
  • ldd tests:

    linux-vdso.so.1 =>  (0x00007fff7db90000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f10ef14c000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f10eee46000)
    libz.so.1 => /lib/libz.so.1 (0x00007f10eec2d000) 
    libm.so.6 => /lib/libm.so.6 (0x00007f10ee9aa000)
    libc.so.6 => /lib/libc.so.6 (0x00007f10ee627000)
    /lib/ld64.so.1 => /lib64/ld-linux-x86-64.so.2 (0x00007f10ef384000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f10ee410000)
    

У чому тут проблема?

Відповіді:


7

Це здалося багатообіцяючим, але я думаю, що мій перекладач ELF добре: /lib/ld64.so.1 => /lib64/ld-linux-x86-64.so.2 (0x00007f10ef384000)і readelf -lкаже: [Requesting program interpreter: /lib/ld64.so.1]
nullspace

2
Тож я чомусь пропустив посилання: sudo ln -s /lib/ld-linux-x86-64.so.2 /lib/ld64.so.1змусив це працювати. Хтось знає, чому це? Я погоджуюсь з цією причиною, вона була найближчою і найкориснішою.
nullspace

@nullspace: Це нормально, що /lib/ld64.so.1не існує. Цей ldза замовчуванням передує сучасній багатошаровій макеті FS, тому gccзавжди переходить --dynamic-linker=/lib64/ld-linux-x86-64.so.2доld
Пітер Кордес

0

Чи справді ім'я файлу "тестує" чи це здається лише таким?

Спробуйте перейменувати файл, чи працює він? Без натискання TAB?

Можливо, ви введете в ім'я не відображається символ CTRL, яким-небудь чином виконайте копіювання та вставлення або натискання якоїсь комбінації клавіш?

Чи

stat tests

працювати, якщо ви пишете тести, не натискаючи TAB?


Це все добре працювало.
nullspace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.