Error: undefined symbol

  • [参考链接1](https://cntofu.com/book/46/fcamel/02.md)参考链接1

问题描述:

error: undefined symbol: android::CallStack::CallStack(char const*, int)
>>> referenced by AudioStream.cpp:920 (vendor/qcom/opensource/audio-hal/primary-hal/hal/AudioStream.cpp:920)
>>>               lto.tmp:(in_read(audio_stream_in*, void*, unsigned long) (.cfi))

ld.lld: error: undefined symbol: android::CallStack::update(int, int)
>>> referenced by AudioStream.cpp:921 (vendor/qcom/opensource/audio-hal/primary-hal/hal/AudioStream.cpp:921)
>>>               lto.tmp:(in_read(audio_stream_in*, void*, unsigned long) (.cfi))

ld.lld: error: undefined symbol: android::CallStack::log(char const*, android_LogPriority, char const*) const
>>> referenced by AudioStream.cpp:922 (vendor/qcom/opensource/audio-hal/primary-hal/hal/AudioStream.cpp:922)
>>>               lto.tmp:(in_read(audio_stream_in*, void*, unsigned long) (.cfi))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

解决方案:

先说解决方案:原因是源码没整编。

建议看下下面原因分析,加深理解

解决过程:

由于电脑空间不够了,所以每次用的模块都是单编,没有整编过,所以out路径下没有生成libutilscallstack.so库,所以报了`undefined symbol`

在另一台整编过的电脑上编译就是正常的。

但是我在自己没整编过的电脑上单编了libutilscallstack后,out路径下有libutilscallstack.so了,还是报同样的错,这里的原因就不知道了。

你可能感兴趣的:(android,linux,c++)