我正在尝试建立一个使用Eclipse ADT,NDK / JNI,Open CV和COCOS2d-X的环境(有趣,有趣,不要问; - )
我设法做了一些简单的例子,似乎cocos2d-x依赖关系得到了正确解析(我使用cocos项目构建器脚本设置项目并尝试使用其中的开放CV。在Visual Studio上我有项目没有任何问题地运行。)
现在当我尝试编译项目的源代码(proj.android)时,我看到的是文件
In file included from jni/../../Classes/AppDelegate.cpp:2:0:
jni/../../Classes/HelloWorldScene.h:8:30: fatal error: opencv2/opencv.hpp: No such file or directory
现在我已经设置了包含路径(项目属性 - > C / C ++常规 - >路径和符号 - >包含(选项卡)。 我试图设置一个相对于项目的路径,也是一个绝对路径。我尝试使用后退和正斜杠,我试图将路径包含在opencv \ build \ include和android的开放CV特定路径中(\ opencv \ OpenCV-2.4.8-android-sdk \ sdk \ native \ JNI \包括)
奇怪的是,在IDE中我看到include目录中的目录strcutrue(例如opencv2 / core等)以及目录中的一些文件 - 但是找不到某些头文件是IDE(显然,由编译器)。
我有opencv示例,我设法编译它们 - IDE也会看到所有包含文件并且不会发出任何这些文件。我试图从该项目复制设置(教程2 - 混合处理),但它没有帮助。我在它们之间看到的唯一区别(除了位置)是cocos2dx项目使用build_native.sh(并依赖于cygwin),而open cv samples使用$ {NDKROOT} /ndk-build.cmd来构建。
例如,请参阅附图:
IDE:
项目设置:
文件系统:
许多头文件也是如此 - IDE只显示了一些(我不需要的)
我不熟悉make文件和整个构建过程,也没有* nix经验,这真的令人沮丧 - 浪费了太多时间在一些应该是微不足道的事情上(如果不是构建,至少对于IDE而言)显示文件。)
以下是构建的完整输出:
01:09:44 **** Incremental Build of configuration Default for project MyBox2d ****
bash D:/cocos2d-x-2.2.3/projects/MyBox2d/proj.android/build_native.sh
NDK_ROOT = D:\android-ndk-r9c
COCOS2DX_ROOT = /cygdrive/d/cocos2d-x-2.2.3/projects/MyBox2d/proj.android/../../..
APP_ROOT = /cygdrive/d/cocos2d-x-2.2.3/projects/MyBox2d/proj.android/..
APP_ANDROID_ROOT = /cygdrive/d/cocos2d-x-2.2.3/projects/MyBox2d/proj.android
Using prebuilt externals
make: Entering directory '/cygdrive/d/cocos2d-x-2.2.3/projects/MyBox2d/proj.android'
Android NDK: WARNING:jni/Android.mk:cocos2dcpp_shared: non-system libraries in linker flags: -lopencv_java
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
Android NDK: WARNING:/cygdrive/d/cocos2d-x- 2.2.3/projects/MyBox2d/proj.android/../../../cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries
[armeabi] Compile++ thumb: cocos2dcpp_shared <= main.cpp
[armeabi] Compile++ thumb: cocos2dcpp_shared <= AppDelegate.cpp
In file included from jni/../../Classes/AppDelegate.cpp:2:0:
jni/../../Classes/HelloWorldScene.h:7:30: fatal error: opencv2/opencv.hpp: No such file or directory
compilation terminated.
/cygdrive/d/android-ndk-r9c/build/core/build-binary.mk:388: recipe for targett 'obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/AppDelegate.o' failed
make: *** [obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/AppDelegate.o] Error 1
make: Leaving directory '/cygdrive/d/cocos2d-x-2.2.3/projects/MyBox2d/proj.android'