・charの型
VisualStudio等で作ったC/C++のコードをそのまま流用するとchar型の違いで動きが変わってしまう場合がある。
ARM gccの “char” = “unsigned char”
VisualStudioの “char” = “signed char”
デフォルトではそうなるらしいので今回はgccのオプション -fsigned-char を付けてあわせた。
Android.mkに次のような感じで追加
LOCAL_CXXFLAGS += -D__ANDROID__ /
-DTARGET_OS=android /
-fsigned-char /
-isystem $(SYSROOT)/usr/include
・#pragma once
gccも使えるらしいので使う。
インクルードファイルの頭に次を書く。(VisualStudioが自動生成したまま)
#pragma once
・ndk-buildのオプション
-B = リビルド(NDK-BUILD.TXTに書いてあるとおり)
-j = マルチプロセッサー環境用設定
-j は私の環境では効果大でした。
こんな感じ
$ ndk-build -B -j
3/19追記:NDKr5以降どうも調子が悪い。-jの使用はあきらめました。
6/12追記:NDKr5cでは使えるようになったみたい、しばらく使ってみる。
・cygtermを使う
スクロールとかコピペができて便利。
・C++のソースにネイティブメソッドを書くときは extern “C” { を付ける
次のような感じで
javahを使えば問題なかったのかも。
#include <jni.h>
#include <android/log.h>
#ifdef __cplusplus
extern "C" {
#endif
ネイティブメソッドを書く
#ifdef __cplusplus
}
#endif
コメントを残す