/ / Pliki nagłówkowe dla kodu c skompilowanego przez kompilator arm-gcc - android, c, gcc, pliki nagłówkowe, cross-kompilacja

Pliki nagłówkowe dla kodu c skompilowanego przez kompilator arm-gcc - android, c, gcc, pliki nagłówkowe, cross-kompilacja

Użyłem struny.h plik nagłówkowy w kodzie c, który ma być kompilowany przy użyciu kompilatora arm-gcc, a wygenerowany plik wykonywalny ma być wykonany na urządzeniu z Androidem. Kiedy pchnąłem mój plik wykonywalny na urządzenie i wykonałem go, pokazał mi błąd połączenia. Jak korzystać z funkcji string.h na takim urządzeniu? Czy te pliki nagłówkowe są specyficzne dla sprzętu?

Odpowiedzi:

1 dla odpowiedzi № 1

ARM EABI stwierdza, że ​​pliki nagłówkowe dlaBiblioteka ANSI C powinna być dostarczana przez kompilator niezależnie od tego, skąd pochodzi biblioteka. Jeśli tworzysz cross-kompilację, musisz jednak upewnić się, że używasz string.h przychodzi z kompilatorem, a nie z rodzimego systemu. Jakiego błędu połączenia dostałeś?

Brzmi jak strstr brakuje w libc, co brzmi dziwnie i nie mam do tego wytłumaczenia. Jeśli masz dostęp do biblioteki na urządzeniu, to sprawdziłbym na przykład objdump -t jeśli to definiuje strstr.


0 dla odpowiedzi nr 2

Jak korzystać z funkcji string.h na takim urządzeniu?

W przeszłości działało to dla mnie.

Czy te pliki nagłówkowe są specyficzne dla sprzętu?

Narzędzia NDK to architektura i platforma (np. Android 8, Android 14 i inne).

O ile nie ma poważnego błędu w NDK (co wydaje się mało prawdopodobne), myślę, że warto ponownie sprawdzić kompilację.