2013-03-18 46 views
2

我已经下载了Android 2.3.6源代码,并且我已经成功构建它。然后,我添加了一个C++库到外部文件夹中,我试图构建它,但是,当我这样做,我收到以下错误:由于未定义的引用,AOSP构建失败

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 =路径/ to/g ++编译器 为了使用g ++编译器 但它仍然使用.../arm-eabi/bin/ld来链接其他库如何强制使用g ++作为链接器。

+0

我记得在Android中没有名为myfile.cpp的文件。那么你能提供myfile.app的来源吗? – StarPinkER 2013-03-19 00:44:34

回答

2

您需要编译&链接C++代码与g++而不是gcc

+0

我用CC = gcc-4.4 CXX = g ++ - 4.4 -j4 但我仍然得到相同的错误 – 2013-03-18 15:11:25

0

出现同类错误,还有'out/xxx/yyy.o: file is empty'。对我来说,原因是虚拟机在构建过程中崩溃,留下一些文件损坏(不必做repo sync,损坏的文件是二进制文件)。

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

相关问题