2013-03-18 44 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,損壞的文件是二進制文件)。

我刪除了包含有問題文件的目錄,重新啓動了構建過程,錯誤消失了。

相關問題