【发布时间】:2015-09-01 11:13:34
【问题描述】:
我使用取自 here 的 PTAM 代码。我尝试使用此代码制作一个 android 应用程序。
PTAM 代码使用 libcvd、TooN、gvars3 库。我使用 ndk-build 从我的 c++ 测试文件生成一个 .so 文件。
首先,我尝试在安卓手机上运行以下代码:
#include <string.h>
#include <jni.h>
extern "C" {
int returnInt()
{
int returnVal = 4;
return returnVal;
}
}
它可以生成.so文件而没有任何错误。如果我添加 #include < TooN/TooN.h > ,`ndk-build 会这样说
fatal error: TooN/TooN.h: No such file or directory
#include <TooN/TooN.h>
^
compilation terminated.
Android.mk 是:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test-jni
LOCAL_SRC_FILES := test-jni.cpp
include $(BUILD_SHARED_LIBRARY)
我该如何解决这个错误信息?
【问题讨论】:
-
您需要将Toon的父目录添加到您的包含路径中。在您的 Android.mk 中,添加行
LOCAL_C_INCLUDES += the/path/to/Toon's/parent/directory -
我将
LOCAL_C_INCLUDES := /usr/include/TooN添加到 android.mk 文件中。但错误依然存在。 -
你不应该添加 TooN 目录本身,而是它的 parent 目录(因为你也在
#include <>中指定了目录)。 -
你是对的。
LOCAL_C_INCLUDES := /usr/include就够了。但是Toon.h包含#include <iostream>。我收到致命错误:iostream:没有这样的文件或目录。在 usr/include 或 usr/local/include 下没有名为 iostream 的文件夹。 -
在您的 Application.mk 中添加
APP_STL := gnustl_shared(或您想要使用的任何 STL 实现)
标签: android c++ compiler-errors android-ndk