Файл .a
- это просто архив одного или нескольких .o
(объектных) файлов.Объектные файлы содержат скомпилированный машинный код (для одной конкретной операционной системы с определенной архитектурой процессора).Исходный исходный код «утерян».
Факт, о котором вы, вероятно, не знали: объектные файлы могут содержать двоичные файлы, скомпилированные из произвольного языка программирования.Файл .h
является специфичным для C / C ++ / Objective C.Он содержит типы данных и прототипы функций, которые вам необходимы, чтобы иметь возможность использовать функции / типы данных / ..., содержащиеся в двоичной форме в объектном файле на C / C ++ / Objective C. Например, вы можете написать библиотеку Pascal, скомпилировать ее.в файл .a
и используйте этот код в программе Objective C, используя соответствующий файл заголовка (.h
).
Вы также можете иметь только один файл заголовка (файл .h
), но, например, 6 разных.a
файлы: один скомпилирован для Mac OS X 64bit
, один для Mac OS X 32bit
, один для Linux 2.6 64bit
, один для Linux 2.6 32bit
, один для FreeBSD
и последний для OpenBSD
.
ИИ последнее, но не менее важное: Apple решила пойти по этому пути, файлы .a
и .o
можно найти (по крайней мере) в любой Unix-подобной операционной системе, а заголовочные файлы являются стандартом в C, так какпервые дни.
Обычно, если вы портируете библиотеку с Mac на Linux, вы можете использовать (большую часть) код и файл заголовка, но нужно скомпилировать отдельный файл .a
, содержащий объектные файлы, скомпилированные для Linux.