Android — сборка AOSP не работает из-за неопределенных ссылок

Я скачал исходный код 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 ++ в качестве компоновщика.

2

Решение

Вам нужно скомпилировать & связать код C ++ с g++ и не gcc,

2

Другие решения

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

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

0