現在、AndroidのNDKを使用してネイティブモジュールを構築しようとしています。プロジェクトはいくつかのソースファイル(例:FILENAME .c)で構成され、それぞれのCFLAGS(-DOPERATION_FILENAME)に定義を宣言する必要があります。Android.mkのLOCAL_CFLAGSで現在のコンパイラのターゲットファイル名を動的に取得する方法は?
これを行うには、Android NDKのクロスコンパイラの現在のターゲットファイルの名前を動的に取得し、それを定義値として使用する必要があります。
これを行う方法とMakefile方法(CFLAGS + = -DOPERATION_ echo $* | sed 's/_$$//'
)に関する情報が見つかりませんでした。
私の現在のAndroid.mkは次のようになります。
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libmpn
LOCAL_SRC_FILES := \
<cut>
LOCAL_CFLAGS := \
-std=gnu99 \
-DHAVE_CONFIG_H \
-D__GMP_WITHIN_GMP \
-O2 \
-pedantic \
-fomit-frame-pointer \
-mfloat-abi=softfp \
-DOPERATION_`echo $* | sed 's/_$$//'`
include $(BUILD_SHARED_LIBRARY)
誰もがAndroid.mkで、現在のクロスコンパイラターゲットのファイル名を取得するための作業方法を知っていますか?ありがとう!あなたのAndroid.mkの初めに
ありがとうございました! – wallen
これはWindowsベースのNDKビルドを壊さないでしょうか? – gladed
@gladed Windowsでこれがなぜ違うのかわかりません。しかし、このハックは、NDKの新しいリリースで壊れるかもしれない実装の詳細に依存します。 –