2012-03-16 60 views
2

我正在構建基於OpenGL的應用程序 - 用本地C/C++編寫。使用NDK編譯鏈接(未複製)的文件

我想將我的本地文件放在一個位置,並只鏈接到項目(所以當我在XCode/Eclipse中編輯它們時,另一個項目已經有更新的文件)。但是,我無法弄清楚如何讓ndk-build構建實際上不在JNI文件夾中的文件。符號鏈接(在OSX中)並沒有成功。

我不斷收到

make: *** No rule to make target `/Developer/SDKs/android-ndk-r7b/build/core/myfile.cpp', needed by `obj/local/armeabi/objs/glHelloArrow/myfile.o'. Stop. 

任何想法?

回答

0

我有跨平臺代碼庫的類似問題。我還沒有找到任何方法來做到這一點。

我的解決方法是從我的源代碼根目錄創建一個符號鏈接到jni,所以我可以給NDK構建系統路徑,如jni/link/common/foo.c

只是要確保您刪除符號鏈接如果你需要運行做遞歸目錄遍歷工具...

1

我建立JNI文件夾之外的Windows上。我Android.mk包括在不同的文件夾中生成文件:

LOCAL_PATH := $(MY_WORKSPACE)/path/jni 
include $(MY_WORKSPACE)/path/jni/Src.mk 

其中實際源列:

LOCAL_SRC_FILES := \ 
    a.cpp \ 
    b.cpp \ 
    etc. 

一個需要注意的是 - make不與相對路徑的工作權利。或者說,它的確如此,但假定路徑是相對於當前文件夾的,在ndk-build進程的情況下可以遍佈整個地方。因此,env變量表示文件位置的根。

一些細節here