/ / File di intestazione per il codice c compilato dal compilatore arm-gcc - android, c, gcc, file di intestazione, cross-compiling

File di intestazione per il codice c compilato dal compilatore arm-gcc - android, c, gcc, header-files, cross-compiling

Ho usato una stringa.h file di intestazione in un codice c che deve essere compilato utilizzando il compilatore arm-gcc e l'eseguibile generato deve essere eseguito su un dispositivo Android. Quando ho spinto il mio eseguibile sul dispositivo e l'ho eseguito, mi ha presentato un errore di collegamento. Come posso utilizzare le funzioni da string.h su un dispositivo di questo tipo? Questi file di intestazione sono specifici per l'hardware?

risposte:

1 per risposta № 1

L'ARM EABI afferma che i file di intestazione per ilLa libreria ANSI C dovrebbe essere fornita dal compilatore indipendente da dove viene la libreria. Se esegui la compilazione incrociata, devi comunque assicurarti di utilizzare il string.h arrivando con il compilatore e non dal sistema nativo. Quale errore di collegamento hai ottenuto?

Suona come strstr manca nel libc, che suona strano e non ho una spiegazione per questo.Se hai accesso alla libreria sul dispositivo, quindi vorrei verificare con per esempio objdump -t se definisce strstr.


0 per risposta № 2

Come posso utilizzare le funzioni da string.h su un dispositivo di questo tipo?

Ha funzionato per me in passato.

Questi file di intestazione sono specifici per l'hardware?

Con gli strumenti NDK, sono specifici per architettura e piattaforma (ad esempio, Android 8, Android 14 e altri).

A meno che non ci sia un bug serio nell'NDK (che sembra improbabile), penso che potresti voler controllare di nuovo la tua build.