2

我已经下载了 Android 2.3.6 源代码并成功构建了它。然后,我在外部文件夹中添加了一个 C++ 库并尝试构建它,但是当我这样做时,我收到以下错误:

prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: path/to/myfile.cpp:26: error: undefined reference to '__cxa_end_cleanup'
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/../lib/gcc/arm-eabi/4.4.3/../../../../arm-eabi/bin/ld: : error: undefined reference to '__gxx_personality_v0'
in function path/to/myfile.cpp:26: error: undefined reference to 'operator delete(void*)'

我将此行添加到 Android.mk 文件中:LOCAL_CXX=path/to/g++compiler 为了使用 g++ 编译器,但它仍然使用 .../arm-eabi/bin/ld 与其他库链接我怎么能强制使用 g++ 作为链接器。

4

2 回答 2

2

您需要编译和链接 C++ 代码,g++而不是gcc.

于 2013-03-18T13:57:00.150 回答
0

有相同类型的错误,以及'out/xxx/yyy.o: file is empty'. 对我来说,原因是 VM 在构建过程中崩溃,导致一些文件损坏(不必这样做repo sync,损坏的文件是二进制文件)。

我删除了包含有问题的文件的目录,重新启动了构建过程并且错误消失了。

于 2014-11-27T01:10:54.840 回答