Ho creato un binario nativo ARM di linux utilizzando la toolchain GCC Android (plain linux, no android o NDK)."Nessun file o directory" che tenta di eseguire binario linux sul dispositivo Android
Mi sono connesso, dal mio PC, tramite adb shell, a un tablet con Android 4. I "adb push" "ed il file binario in/system/bin su quel dispositivo, sperando che lo facessi eseguire lì. L'ho contrassegnato come eseguibile con chmod 777.
Se provo ad eseguirlo, otterrei "Nessun file o directory".
Ulteriori informazioni: Il piccolo programma utilizza le librerie fc e fm. Poiché la toolchain ARM non sembra avere crt1, che, da un esempio trovato, contiene normalmente il codice di avvio, abbiamo cercato tra i file che lo contengono nella build di Android, trovato crtbegin_dynamic e crtend_dynamic, ma per equivalente statico, uno della coppia mancava, quindi non passai -statico a GCC. È stato creato con "-nostdlib".
Quale potrebbe essere il/i problema/i?
È necessario utilizzare nm o simile per trovare le dipendenze del file eseguibile, ma in realtà è necessario utilizzare solo NDK gcc per costruire per Android a meno che non si insista a fare le cose nel modo più difficile. ** Si prega di notare che questa domanda non ha nulla a che fare con le librerie mancanti per la macchina di sviluppo **, nonostante abbia misteriosamente attratto una risposta popolare su questo argomento completamente diverso. –