2016-03-31 11 views
2

新しいマシンにAndroid NDK(r11b)の最新バージョンがインストールされました。私のC++コードをコンパイルすると、 "__pure2"が再定義されているというエラーが出ます。インクルードファイルmath.hには、sys/cdefs.hが含まれています。どちらも無条件に "__pure2"というマクロを定義し、両方とも異なって定義します。Androidビルド "__pure2"が再定義されました

同じコードが古いマシンで正常に動作します。調べると、マシンの$ ndk \ platforms \ android-9 \ arch-arm \ usr \ include \ sys \ cdefs.hに "__pure2"の定義がありません。最近紹介された人のようです。他の誰かがこの問題を見たことがあるかどうかわかりません。

今のところ、マクロ定義をsys/cdefs.hにコメントしました。これを修正するより良い方法はありますか?よろしく。

答えて

3

実際にこの問題を追跡しているbug ticketがあります。それ以上のアップデートを行うには、それをフォローしたいかもしれませんが、NDK r12で修正されるようです。チケットのコメントに記載されているように、#ifndefを使用して回避することを選択します。

#ifndef __pure2 
    #define __pure // whatever the original definition is 
#endif 
関連する問題