Библиотека /home/yuki/sac/lib/libsacio.a
была создана для архитектуры, несовместимой с той, для которой вы пытаетесь связать программу.Наиболее вероятная причина - библиотека содержит 32-битные объектные файлы, и вы пытаетесь установить 64-битную связь.Следующим наиболее вероятным является 64-разрядная библиотека в 32-разрядном соединении.
Если вы cd
перейдете в каталог, в котором вы запустили это соединение, и запустите:
$ objdump -f sac2mt5.o
, вывод будетсодержат строки вида:
sac2mt5.o: file format <...>
architecture: <...>, flags 0x<...>:
например (64-битный ELF):
sac2mt5.o: file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000010:
или (32-битный ELF):
sac2mt5.o: file format elf32-i386
architecture: i386, flags 0x00000010:
Этискажу вам название архитектуры, для которой вы пытаетесь связать (архитектура вашей системы) и имя ее файла объектного формата.
Если вы затем также выполните:
$ objdump -f /home/yuki/sac/lib/libsacio.a
youувидит соответствующую информацию для каждого объектного файла в архиве /home/yuki/sac/lib/libsacio.a
, и вы увидите, что архитектура и формат файла этих объектных файлов не соответствуют вашей системе.
Вам необходимо найти и использовать libsacio.a
, который был построен для той же архитектуры, что и ваша система - скорее всего, 64-битная библиотека, если ваша система 64-битная;32-битная библиотека, если ваша система 32-битная.