Mam plik .a, z którego chcę uzyskać informacje o architekturze. Uruchamianie file myFile.a
jest wynikiem file.a: current ar archive
. Jak mogę uzyskać więcej informacji na temat architektury pliku?Jak mogę uzyskać architekturę pliku ".a"?
Odpowiedz
Można również pominąć komendy ar
i wykorzystać readelf, poprzez coś podobnego :
readelf -h <archive>.a | grep 'Class\|File\|Machine'
[00:32:15] /usr/lib $ readelf -h libxslt.a | grep 'Class\|File\|Machine'
File: libxslt.a(attrvt.o)
Class: ELF32
Machine: Intel 80386
File: libxslt.a(xslt.o)
Class: ELF32
Machine: Intel 80386
... #Trimmed this, it goes on a bit
File: libxslt.a(transform.o)
Class: ELF32
Machine: Intel 80386
File: libxslt.a(security.o)
Class: ELF32
Machine: Intel 80386
[00:32:24] /usr/lib $
Jeśli jest to istotne, oto inne informacje, które można uzyskać od readelf -h
. I właśnie przycięta z grep
wyżej, oczywiście:
File: libxslt.a(security.o)
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: REL (Relocatable file)
Machine: Intel 80386
Version: 0x1
Entry point address: 0x0
Start of program headers: 0 (bytes into file)
Start of section headers: 2548 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 16
Section header string table index: 13
To wyjście jest dla jednej plików obiektowych w libxslt.a
, ale daje te same informacje dla każdego pliku.
wyodrębnić pliki z archiwum obiektów i sprawdzać je z pliku (1), Nowy Meksyk (1), itp
objdump
ma innej opcji:
objdump -a file.a|grep 'file format'
Zastosowanie
lipo -info libExample.a
Będzie Kto architektura budować dla. Inne funkcje, takie jak otool lub plik, nie dają dokładnej odpowiedzi, a czasami są pełne, aby uzyskać prawidłowe informacje.
Lipo wydaje się być specyficzne dla OS X. – MetalGodwin
Sugerowałbym użycie objdump zamiast lipo. objdump dostarcza szczegółowych informacji niż lipo.
- 1. Jak mogę uzyskać ikonę pliku?
- 2. Jak określić architekturę rozproszoną?
- 3. Jak mogę obsługiwać architekturę Redis za pomocą StackExchange.Redis?
- 4. Jak mogę uzyskać nazwę pliku z żądania.FILES?
- 5. Jak mogę uzyskać nazwę pliku w Dart?
- 6. Jak mogę uzyskać ConnectionString Nazwa pliku konfiguracyjnego
- 7. Jak zrozumieć czystą architekturę VIPER?
- 8. Automatycznie zapisuj architekturę serwera
- 9. Jak wdrożyć 3 szczeblami architekturę w C#
- 10. Jak mogę putStrLn a Data.ByteString.Internal.ByteString?
- 11. Jak mogę uzyskać dane z pliku w folderze dokumentów
- 12. Jak mogę uzyskać liczbę klatek na sekundę z pliku GIF?
- 13. Jak mogę uzyskać zawartość przesłanego pliku w php?
- 14. Czy mogę uzyskać datę zmodyfikowania pliku HTTP?
- 15. Jak dodać architekturę armv6 do projektu Xcode?
- 16. Jak uzyskać nazwę pliku DLL?
- 17. Jak mogę uzyskać rozmiar pliku za pomocą prostego kodu JavaScript?
- 18. Jak mogę uzyskać SecKeyRef z pliku DER/PEM
- 19. Jak mogę uzyskać javascript do odczytu z pliku .json?
- 20. Jak mogę uzyskać dostęp do pliku logcat na urządzeniu
- 21. Jak mogę uzyskać miniaturkę używaną przez Nautilus dla danego pliku?
- 22. Jak mogę uzyskać język przeglądarki w pliku node.js (express.js)?
- 23. Jak mogę uzyskać adres IP klienta łączącego w pliku Node.js?
- 24. Android: Jak mogę uzyskać rozmiar pliku FTP za pośrednictwem FTPClient?
- 25. Architektura Blues: Wyjaśnij tę architekturę
- 26. jnlp webstart nativelib: jak określić inną architekturę dla os
- 27. Jak uzyskać nazwę otwartego pliku?
- 28. Jak uzyskać datę utworzenia pliku?
- 29. Jak mogę uzyskać identyfikator App
- 30. Jak określić docelową architekturę biblioteki statycznej (.a) w systemie Mac OS X?
Polecam dodanie "Maszyny" do tamtej listy. Obejmują one informacje o konkretnym CPU, dla którego tworzone są pliki obiektów, a nie tylko o tym, czy jest to 32- czy 64-bitowy, czy cokolwiek innego. – cHao
@ cHao: Tak, też o tym myślałem. Robię kolejną edycję (i dodałem całe wyjście 'readelf -h'). – eldarerathis
Dzięki! Właśnie tego szukałem. – Mike