我已经使用 CDT 编程了一段时间,它运行良好。一般来说,一切都适用于它,例如,我可以通过输入
来导入 opencvusing namespace cv;
但是,现在有两个我需要的导入不起作用。
#include <vector>
using namespace std;
这两个都带有下划线,导致编译错误的标准(另一个只是警告)。当我设置它时,this guide告诉我以下包含将消除这些错误:
# for NDK r8b and later:
${NDKROOT}/platforms/android-9/arch-arm/usr/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include
${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include
${ProjDirPath}/../../sdk/native/jni/include
然而,这只对 opencv 有帮助。我正在使用 NDK v r8d(据我所知是最新的)。除了这些包括,我可以让它编译和构建。我将不胜感激任何指向正确方向的指示!
最佳答案
我不确定为什么这在 OpenCV 文档中没有任何地方,但这里是你编译它的方法:
除了上面的包含之外,您还需要再包含两个(如果还没有的话)。您需要找到您的 C++ 文件所在的位置。在 Mac 上,它们位于/usr/include。所以在Project Properties->C/C++ General->Paths and Symbols->Includes Tab下添加如下两个import
/usr/include/c++/<your version of c++>
/usr/include
在我的例子中,上面是这样的:
/usr/include/c++/4.2.1
/usr/include
关于无法解析 Android CDT setup std,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736293/