Войти
Мобильные платформыФорумОбщее

Андроид. Линкер не видит `__sF' и `__isinf'.

#0
21:48, 2 апр. 2015

Всем привет.
Собрал ffmpeg для андроид в ubuntu, ndk10d. Пытаюсь слинковать в винде (под мармеладом).
Использую gcc и g++.
Получаю:
  undefined reference to __sF in function `av_log_default_callback' (libavutil.a)
  undefined reference to __isinf in function `eval_expr' и `av_expr_eval' (libavutil.a)

Что пытался сделать:
  - Подцепить либу из NDK, где нашел __sF и __isinf. Получил multiple definitions на много др. функций. Поставил muldefs, слинковал,
    но не запускается, не заходит даже в main (stack segment fail). Что неудивительно, получилась каша из либ разных api.
  - Нашел исходник на __isinf, собрал маленькую либу, подключил перед libavutil.a. Всё равно линкер не берёт.

__isinf объявлена в дебрях ffmpeg как static inline int __isinf( double a ). В хедере. И не попадает в либу.

Подскажите кто-нибудь решение, буду благодарен.


#1
0:37, 3 апр. 2015

на сколько я знаю - нельзя с мармеладом просто так линковать свои либы
нужно делать extension для него, внутри которого оборачивать все вызовы к твоей либе

#2
12:22, 3 апр. 2015

Упс. Попробую костыль вставить в исходник ffpmeg. Если не взлетит, жалко кучи времени.

Мобильные платформыФорумОбщее

Тема в архиве.