注意:它显然是StackOverflow上的一个经常出现的问题,但是 - 对于我所看到的 - 人们从来没有找到方法或者他们的解决方案对我不起作用
我正在使用Eclipse Juno ADT.在我尝试更新NDK之前,一切正常.我用新版本(即)替换了我的ndk文件夹(ndk-r8d即ndk-r8e),在我的Paths and Symbols配置中,我将包含从g ++ 4.6更改为4.7.
它似乎打破了我的索引:我可以编译我的代码,但Eclipse给出了语义错误,就像在[ 1 ]和[ 2 ]中一样.这些错误主要是由来自OpenCV4Android使用的符号,如distance,pt,queryIdx和trainIdx.
当我尝试备份到我的旧配置时,索引仍然被破坏了!我找不到改变这个的方法.
trainIdx仅在我的OpenCV4Android中出现的符号包含在该Paths and Symbols部分中.Paths and Symbols部分中更改我的包含的顺序.我基本上试图将OpenCV包含在开头和结尾.我假设它是CDT索引,原因如下:
ndk-build clean和构建我的项目ndk-build.jni文件夹中)之前我没有错误.Field '<name>' could not be resolved.下面的代码报告有关错误line …
我正在使用android NDK r8d和eclipse Juno.我试图编译它使用C++ 11的东西像C++代码mutex,lock_guard,shared_ptr等在Eclipse一个原生Android项目.
我得到的错误如下:
"错误:'shared_ptr'不是'std'的成员"
"致命错误:互斥:没有这样的文件或目录"
我在这里遇到了类似的问题.它似乎对他们有效,但那里的解释并不完整,所以我无法让它为我工作.
我加入"NDK_TOOLCHAIN_VERSION=4.7"到Application.mk和"LOCAL_CFLAGS += -std=c++11"到Android.mk文件中.它仍然没有编译.
在上面的链接中它说:
"确保标准库包含路径(如/android-ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include)在目标设置中."
我如何以及在何处插入?
我也在eclipse IDE中遇到错误(在编译之前在源代码上).我知道我应该定义"__GXX_EXPERIMENTAL_CXX0X__"解决它们,但我只是不知道把它放在哪里.
所以,如果有人能够发布一个答案,并详细解释如何编译和使用C++ 11进行eclipse工作,那就太好了.
我无法弄清楚如何在我的Android项目中使用共享指针.我在Mac OS X上使用最新的Eclipse ADT和Android NDK r8d.
这是我的Android.mk文件中的内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPPFLAGS := -std=c++11
LOCAL_MODULE := native
LOCAL_SRC_FILES := native.cpp
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
这是我的Application.mk文件中的内容:
NDK_TOOLCHAIN_VERSION=4.7
APP_STL := stlport_shared
Run Code Online (Sandbox Code Playgroud)
我已经尝试了默认的GCC 4.6,实验4.7和clang3.1工具链.
我试过链接到stlport_shared和gnustl_sharedc ++运行时库.
我已经试过了FLAGS -std=c++11,-std=c++0x和-std=gnu++11.
我能够使用lambdas和c ++ 11标准的auto,所以C++ 11标志似乎正在工作.但是,无论何时我尝试使用shared_ptr,weak_ptr或unique_ptr,我都会收到错误'suchandsuch_ptr' is not a member of 'std'
我有#include <memory>我的cpp文件.现在Eclipse告诉我Unresolved inclusion: <memory>,但我得到同样的东西<vector>,<string>并且那些似乎编译和工作正常.
智能指针是否未在Android NDK中包含的工具链中实现?
如果没有,为什么不呢?由于GCC和clang已经支持智能指针很长一段时间了,这意味着我要么丢失一些东西,要么Android开发者因为某些原因禁用了它们.
有线索吗?
我已经下载了用于android的OpenCV项目,与它捆绑在一起的示例项目包含几个错误....只有包含NDK代码的项目才有错误....问题是C++代码显示了很多错误.. .像jstring这样的关键字无法识别..请帮我解决这个问题...提前感谢您的宝贵时间
#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>
using namespace std;
using namespace cv;
extern "C" {
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial3_Sample3View_FindFeatures(JNIEnv* env, jobject, jint width, jint height, jbyteArray yuv, jintArray bgra)
{
jbyte* _yuv = env->GetByteArrayElements(yuv, 0);
jint* _bgra = env->GetIntArrayElements(bgra, 0);
Mat myuv(height + height/2, width, CV_8UC1, (unsigned char *)_yuv);
Mat mbgra(height, width, CV_8UC4, (unsigned char *)_bgra);
Mat mgray(height, width, CV_8UC1, (unsigned char *)_yuv);
//Please make attention about BGRA byte order
//ARGB stored in java …Run Code Online (Sandbox Code Playgroud)