在bootable\recovery\updater\update.c 随便找出一个位置写下如下的c++ 代码
      char* pbuff = new char[100];报错如下:error: 'new' undeclared (first use in this function)
同时发现,正常编译时,会有libstdc++生成有如下问题:
1.编译为何会生成libstdc++, 难道不是由编译器提供?
2.出错的情形,链接的是产生的libstdc++, 而这个libstdc++ 没有new等C++特性操作?

解决方案 »

  1.   

    android的lib核心库和标准的差异很大,用标准的交叉编译工具没办法做的。下载一个android的交叉编译工具,把引用的lib库和头文件拷贝到交叉编译器指定的链接和引用的地方就可以脱离ndk了。
      

  2.   

    是我看错了,遇到.c文件的时候是使用c的编译器进行编译的,当遇到cpp结尾的时候才会使用c++的编译器进行编译的,c的编译器是不支持new操作的。
      

  3.   

    但是改成.cpp  就可以通过,这又是为何?