检查需要哪些库
Check which libraries are needed
如何检查我的 Android 应用程序需要 link 哪些库? 我的意思是我遇到很多错误,例如 error: undefined reference to 'function_name'
并且我需要手动解决它们 - 在库名称中查找一些匹配项并将它们添加到我的项目中。但它并不总是有效,例如现在我尝试在 Android 上使用 Gstreamer 并得到一些未解决的依赖项,我不知道这些函数位于哪个库中:
- 对 'g_simple_proxy_resolver_new'
的未定义引用
- 对 'gst_preset_get_type'
的未定义引用
那么,如何以及在哪里可以找到包含这些函数的库?
我认为更好的方法是在 find 的帮助下将 readelf 与 grep 一起使用..
find . -type f -name "*.so" | while read file; do echo $file; readelf -Ws $file | grep gst_preset_get_type; done
输出:
./ext/alsa/.libs/libgstalsa.so ./ext/theora/.libs/libgsttheora.so
./ext/cdparanoia/.libs/libgstcdparanoia.so ./ext/libvisual/.libs
/libgstlibvisual.so ./ext/ogg/.libs/libgstogg.so
49: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
518: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
...
./gst/encoding/.libs/libgstencodebin.so
37: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
232: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
您可以在 /usr/lib 左右搜索..
也许您还缺少一些插件?尝试设置变量 GST_PLUGINS_PATH,它应该指向包含 gstreamer 插件(在运行时加载)的目录
如何检查我的 Android 应用程序需要 link 哪些库? 我的意思是我遇到很多错误,例如 error: undefined reference to 'function_name'
并且我需要手动解决它们 - 在库名称中查找一些匹配项并将它们添加到我的项目中。但它并不总是有效,例如现在我尝试在 Android 上使用 Gstreamer 并得到一些未解决的依赖项,我不知道这些函数位于哪个库中:
- 对 'g_simple_proxy_resolver_new' 的未定义引用
- 对 'gst_preset_get_type' 的未定义引用
那么,如何以及在哪里可以找到包含这些函数的库?
我认为更好的方法是在 find 的帮助下将 readelf 与 grep 一起使用..
find . -type f -name "*.so" | while read file; do echo $file; readelf -Ws $file | grep gst_preset_get_type; done
输出:
./ext/alsa/.libs/libgstalsa.so ./ext/theora/.libs/libgsttheora.so
./ext/cdparanoia/.libs/libgstcdparanoia.so ./ext/libvisual/.libs
/libgstlibvisual.so ./ext/ogg/.libs/libgstogg.so
49: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
518: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
...
./gst/encoding/.libs/libgstencodebin.so
37: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
232: 0000000000000000 0 FUNC GLOBAL DEFAULT UND gst_preset_get_type
您可以在 /usr/lib 左右搜索..
也许您还缺少一些插件?尝试设置变量 GST_PLUGINS_PATH,它应该指向包含 gstreamer 插件(在运行时加载)的目录