ld.lld: error: undefined symbol: android::MediaCodec::appendSkyMediaRoute(char const*) >>> referenced by MediaCodec.cpp:858 (frameworks/av/media/libstagefright/MediaCodec.cpp:858) >>> lto.tmp:(android::MediaCodec::MediaCodec(android::spandroid::ALooper const&, int, unsigned int, std::__1::function<android::spandroid::CodecBase (android::AString const&, char const*)>, std::__1::function<int (android::AString const&, android::spandroid::MediaCodecInfo*)>)) clang-12: error: linker command failed with exit code 1 (use -v to see invocation)怎么解决
时间: 2023-09-15 19:15:01 浏览: 196
这个错误可能是由于缺少相关库文件或库文件未正确链接导致的。您可以尝试以下步骤来解决问题:
1. 确保您已正确地包含了相关头文件和库文件,并且已将其添加到项目的链接器设置中。
2. 确保您使用的库文件版本与您的代码兼容。
3. 检查您的代码是否正确地引用了该符号。可以尝试在代码中添加一个定义该符号的函数,以确保该符号正确链接。
4. 尝试使用"-v"选项查看详细的链接器命令以获得更多信息,了解哪些库文件未被正确链接。
5. 如果以上步骤均未能解决问题,可以考虑更新您的NDK版本,以确保您使用的是最新版本的NDK。
相关问题
ld.lld: error: undefined symbol: android::MediaCodec::appendSkyMediaRoute(char const*) >>> referenced by MediaCodec.cpp:858 (frameworks/av/media/libstagefright/MediaCodec.cpp:858) >>> lto.tmp:(android::MediaCodec::MediaCodec(android::sp<android::ALooper> const&, int, unsigned int, std::__1::function<android::sp<android::CodecBase> (android::AString const&, char const*)>, std::__1::function<int (android::AString const&, android::sp<android::MediaCodecInfo>*)>)) clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
这个错误是由于链接器找不到名为"android::MediaCodec::appendSkyMediaRoute(char const*)"的符号所致,该符号在MediaCodec.cpp的第858行被引用。建议检查代码中是否正确包含了相关头文件和库文件,并且确认代码中是否正确定义了该符号。您可以尝试使用"-v"选项查看详细的链接器命令以获得更多信息。
如何处理Android的编译报错——ld.lld: error: undefined symbol: persistent_ram_old_size >>> referenced by irqbypass.c >>> vmlinux.o:(pstore_ftrace_dump_old) ld.lld: error: undefined symbol: aud_sr_idx_to_val >>> referenced by irqbypass.c >>> vmlinux.o:(hdmitx_set_audmode) make: *** [/home/yang59.zhou/samba/T963D4-0321/Android11/common-5.15/common/Makefile:1326: vmlinux] Error 1
这个错误提示显示有两个未定义的符号,分别是persistent_ram_old_size和aud_sr_idx_to_val。一般出现这种错误提示的原因是缺少对应的库文件或者头文件。
下面给出两种常见解决方案:
1. 检查编译环境
检查编译环境是否齐全,包括NDK版本、SDK版本、编译工具链版本、库文件版本等。如果编译环境不齐全或不匹配,可能会导致编译时找不到对应的头文件或库文件而出现编译错误。
2. 添加缺少的库文件或头文件
如果缺少对应的库文件或头文件,则需要手动添加。具体方法如下:
(1)查找缺少的库文件或头文件
在错误提示中找到缺少的库文件或头文件,然后在编译环境中查找是否存在该文件。
(2)添加库文件或头文件
如果存在该文件,则需要将其添加到编译环境中。可以将其复制到对应的目录下,或者在编译命令中指定对应的路径。
如果还是无法解决问题,可以尝试更新编译工具链或切换到其他编译环境进行编译。
阅读全文
相关推荐

















