Использование 32-битного файла библиотеки .a на 64-битной машине Linux

Я пытаюсь использовать 32-битные файлы .a на 64-битной машине. Я скомпилировал исходный код, используя опцию gcc -m32. Это дало следующую ошибку

gcc -m32 *.c -Llib -lquanser_communications -Iinclude -o prg.o`In file included from /usr/include/wchar.h:27:0,
from include/quanser_types.h:16,
from include/quanser_communications.h:16,
from include/quanser_stream.h:11,
from stream_client.c:3:/usr/include/features.h:374:25:

fatal error: sys/cdefs.h: No such file or directory

После поиска я дошел до этого и нить и установили пакеты libx32gcc-4.8-dev и libc6-dev-i386.

После установки этих пакетов и запуска компиляции выдает следующую ошибку

gcc -m32 *.c -Llib -lquanser_communications -Iinclude -o prg.o
lib/libquanser_communications.a: file not recognized: File truncated

Как я мог решить эту проблему?
Благодарю.

0

Решение

Вы, вероятно, получаете эту ошибку, потому что ваша libquanser_communications является 64-битной, а не 32-битной. Вы не можете скомпилировать 32-битные против 64-битного кода.

Если вы сами скомпилировали libqunaser, скомпилируйте его с флагом -m32 (рекурсивно, пока не закончите со всеми зависимостями).

Если нет, получите 32-битную версию

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector