IJKPlayer - iOS Build - символы не найдены
Так что я последние дни копался в мире потокового вещания, подробно с RTSP. Я нашел библиотеку под названием IJKPlayer, которую можно использовать для воспроизведения потока RTSP.
Нашел много учебников, которые объясняют, как создать.framework для включения в мое быстрое приложение, например, этот пример, этот или этот другой.
Однако, когда я связываю фреймворк с моим проектом, импортирую библиотеку в контроллер представления и делаю некоторую ссылку на него, я всегда получаю эту досадную ошибку "Неопределенные символы для архитектуры x86_64:". Я новичок в создании собственных статических библиотек и всего такого, я нашел пару ответов, указывающих, что я должен добавить zlib во время компиляции, однако я не знаю, что это значит.
Более того, я нашел это возможное решение, которое говорит о добавлении zlib к этапу компоновки OSX, но я не пробовал его, потому что я не знаю, что это значит...
Может ли кто-нибудь помочь мне с этой проблемой?
Заранее спасибо!
Это ошибка, которую я получаю:
Undefined symbols for architecture x86_64:
"_inflateInit_", referenced from: _rtmp_open in IJKMediaFramework(rtmpproto.o)
"_inflate", referenced from:
_http_read_stream in IJKMediaFramework(http.o)
_rtmp_open in IJKMediaFramework(rtmpproto.o)
"_zlibCompileFlags", referenced from: _http_read_header in IJKMediaFramework(http.o)
"_deflate", referenced from: _encode_frame in IJKMediaFramework(pngenc.o)
"_inflateEnd", referenced from:
_http_close in IJKMediaFramework(http.o)
_http_read_header in IJKMediaFramework(http.o)
_rtmp_open in IJKMediaFramework(rtmpproto.o)
"operator delete(void*)", referenced from: _ijk_map_destroy in IJKMediaFramework(ijkstl.o)
std::__1::__tree<std::__1::__value_type<long long, void*>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, void*>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, void*> > >::destroy(std::__1::__tree_node<std::__1::__value_type<long long, void*>, void*>*) in IJKMediaFramework(ijkstl.o)
std::__1::__tree<std::__1::__value_type<long long, void*>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, void*>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, void*> > >::erase(std::__1::__tree_const_iterator<std::__1::__value_type<long long, void*>, std::__1::__tree_node<std::__1::__value_type<long long, void*>, void*>*, long>) in IJKMediaFramework(ijkstl.o)
"_deflateBound", referenced from:
_encode_png in IJKMediaFramework(pngenc.o)
_encode_apng in IJKMediaFramework(pngenc.o)
"_deflateReset", referenced from:
_encode_frame in IJKMediaFramework(pngenc.o)
"_inflateInit2_", referenced from:
_http_read_header in IJKMediaFramework(http.o)
"_deflateEnd", referenced from:
_png_enc_close in IJKMediaFramework(pngenc.o)
"_deflateInit2_", referenced from:
_png_enc_init in IJKMediaFramework(pngenc.o)
"operator new(unsigned long)", referenced from:
_ijk_map_create in IJKMediaFramework(ijkstl.o)
std::__1::pair<std::__1::__tree_iterator<std::__1::__value_type<long long, void*>, std::__1::__tree_node<std::__1::__value_type<long long, void*>, void*>*, long>, bool> std::__1::__tree<std::__1::__value_type<long long, void*>, std::__1::__map_value_compare<long long, std::__1::__value_type<long long, void*>, std::__1::less<long long>, true>, std::__1::allocator<std::__1::__value_type<long long, void*> > >::__emplace_unique_key_args<long long, std::__1::piecewise_construct_t const&, std::__1::tuple<long long const&>, std::__1::tuple<> >(long long const&, std::__1::piecewise_construct_t const&&&, std::__1::tuple<long long const&>&&, std::__1::tuple<>&&) in IJKMediaFramework(ijkstl.o)
"_uncompress", referenced from:
_id3v2_read_internal in IJKMediaFramework(id3v2.o)
_mov_read_cmov in IJKMediaFramework(mov.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)