преобразование и пропуск архитектуры библиотеки несовместимы

Моя проблемаУ меня есть пользовательская библиотека, которая мне нужна для компиляции моей программы. Однако компоновщик не принимает библиотеку как совместимую, пропускает ее и, таким образом, завершается ошибкой. Другие вопросы пытаются связать 32-битную и 64-битную архитектуру / библиотеку (или наоборот). Моя библиотека и машинная архитектура, однако, являются 64-битными.
Библиотека содержит несколько объектных файлов, которые имеют одинаковый формат, который я возвратил с:

objdump -f libmylib.Linux64.a

In archive libmylib.Linux64.a:
obj1.o:      file format elf64-little
architecture: UNKNOWN!, flags: 0x00000011
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000

obj2.o:      file format elf64-little
architecture: UNKNOWN!, flags: 0x00000011
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
[...]

Я предполагаю, что проблема возникла из-за неизвестной архитектуры и другого формата файла, по-видимому, несовместимого с моими файлами main.cpp.o.

Мой вопрос:

Можно ли преобразовать библиотеку в формат файла:

elf64-littleaarch64

и установить архитектуру

aarch64

(это формат моего main.cpp.o)?
Если так, как бы я это сделал?
Я попытался извлечь объектные файлы и перестроить библиотеку с

ar -qc --target=elf64-littleaarch64

без успеха.

Или я должен установить правильные флаги в моем CMakeList.txt и если да, то каковы они?

Заранее спасибо, любое указание в правильном направлении или помощь будет очень признателен

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы [email protected]