2013-03-18 2 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

ответ

2

Вам необходимо скомпилировать & ссылку Код C++ с g++, а не gcc.

+0

Я использовал make CC = gcc-4.4 CXX = g ++ - 4.4 -j4 , но у меня все же были те же ошибки –

0

Были ошибки такого же типа, а также 'out/xxx/yyy.o: file is empty'. Для меня причина заключалась в том, что VM разбилась во время процесса сборки, оставив некоторые файлы поврежденными (не нужно было делать repo sync, поврежденные файлы были двоичными).

Я удалил каталог, содержащий проблемные файлы, перезапустил процесс сборки и ошибки исчезли.

Смежные вопросы