Android Studio使用CMake

hebiruwo ANDROID好有趣 2016年12月28日 提问
  • 0 收藏, 浏览

各位好,小弟初次來到IT藍豹,

近日一直有個問題困擾著,

大致問題的流程如下:

過去在eclipse ADT開發時,使用Android.mk build了一些so檔,

而現在想要在Androis studio上使用debug的方式以trace這些cpp檔;

google後發現要使用CMake才能trace,於是自己也寫了一個CMakeLists.txt,

然而在build apk時,發生了許多類似的錯誤,如下:

Error:error: unknown type name 'CriticalSection'

Error:error: use of undeclared identifier 'htons'

Error:error: use of undeclared identifier 'htonl'

針對第一個error,到criticalsection.h查看後,發現宣告criticalsection這個class的區塊被ifdef WIN32包起了,如下:

#ifdef WIN32

class CriticalSection {

......

}

#endif // WIN32

據我所知,#ifdef WIN32的作用是如果之前有#defin WIN32,

那麼在這邊#ifdef WIN32 所包起的區塊就會生效,

代表先前並沒有#defin WIN32,那麼問題來了,

使用ndk-build可以成功編出so檔,為什麼使用CMake卻會出現這個問題!?

目前胡亂猜測,

與ndk有關?

與OS有關?

與CMake有關?

與cpp、header檔有關?

與jdk(應該無關)

不知有哪位大大有這方面的經驗呢!?  卡了一個多月T_T....

写答案