Перейти к содержанию
Fire Monkey от А до Я
  • 0

Линковка с библиотекой, скомпилированной на MAC


SerhioUser

Вопрос

Здравствуйте многоуважаемые!

 

Пытаюсь собрать приложение с использованием библиотеки FFMPEG (не суть важно, но для конкретики).

Под Win32 отлично собралось и запустилось с либами скачанными с официального сайта.

Для MAC OS скомпилированных библиотек не нашел. Взял исходники и скомпилировал непосредственно в MAC OS. Получил *.o и *.a файлы. НО! Внутренние их структуры отличаются от подобных файлов, скомпиленных под C++Builder XE7.

В результате подключаю "LIBAVDEVICE.A" файл к "hello-word" проекту и получаю ошибку:

[ILINK32 Error] Fatal: Archive file 'C:\...bla-bla...\MACLIBTEST\OSX32\DEBUG\LIBAVDEVICE.A' lists no symbols in its dictionary.

Для проверки скомпилил под маком несколько других библиотек - результат такой-же. "*.a" - файлы не распознаются студией.

Может есть какой конвертор, или нужно скомпилить на маке с какой-нибудь опцией?

Собственно, какая технология подключения сторонних библиотек к FMX-проектам?

 

Для примера прикрепил архив libavdevice.zip с a-файлом.

 

Софт:

RAD Studio XE7

OS X Mountain Lion (10.8.3)

XCODE 4.6.3

 

Спасибо!

Изменено пользователем SerhioUser
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Добрый день,

 

  1. Попробуйте использовать собранные библиотеки для OSX: http://ffmpegmac.net/
  2. Какой тип проекта вы выбирали, когда собирали библиотеки в RAD Studio?
Ссылка на комментарий
  • 0

 

Добрый день,

 

  1. Попробуйте использовать собранные библиотеки для OSX: http://ffmpegmac.net/
  2. Какой тип проекта вы выбирали, когда собирали библиотеки в RAD Studio?

 

Благодарю за ответ.

1 - я их скачивал, но не понял как прикрутить к проекту. Там в архиве файлы без расширения.

2 - Multi-Device Application

Ссылка на комментарий
  • 0

Что удалось выяснить:

Объектные файлы, которые получаются при компиляции на маке имеет структуру Mach-O и архитектуру X86_64.

Объектные файлы, скомпилированные из студии:

ELF 32-bit LSB relocatable, Intel 80386, version 1, not stripped

Это сообщила программа в mac os - "file".

Библиотеки "а":

На маке - Non-fat file: libavdevice.a is architecture: X86_64

В студии - archive whith no architecture specification: libtest.a (can't determine architecture for it)

Это сообщила программа в mac os - "lipo".

 

То есть на маке библиотека в себе содержит параметр архитектуры, а студия этим не заморачивается.

 

Мне удалось скомпилить библиотеку на маке в 32бита. Объектники стали Mach-O i386.

Библиотека стала: Non-fat file: libavdevice.a is architecture: i386

 

Теперь вопрос: что нужно сделать, чтобы "a"-файл собрался без информации об архитектуре.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...