Когда вы связываете файлы, вы делаете это с помощью компоновщика, а не компилятора. Иногда компиляторы вызывают для вас компоновщик, поэтому вам не нужно этого делать, поэтому вы думаете, что компиляторы выполняют компоновку.
Вот как вы связываете несколько объектных файлов:
ld -o myprogram program.o program1.o ...
Для получения дополнительной информации о ld
смотрите здесь .
РЕДАКТИРОВАТЬ: Если вы собираетесь использовать свои пролог-файлы .o в проекте iOS, вы должны быть уверены, что скомпилировали пролог-код для той же платформы, на которой работает iOS, скажем ARM.