Android NDK:找不到iostream文件
关于这个问题,我尝试了很多建议,但似乎没有一个能解决我的问题 这是我的命令:Android NDK:找不到iostream文件,android,android-ndk,tesseract,tess-two,Android,Android Ndk,Tesseract,Tess Two,关于这个问题,我尝试了很多建议,但似乎没有一个能解决我的问题 这是我的命令: C:\Users\{name}\Desktop\MyApplication\libraries\tess-two-master\tess-two\jni> C:\Users\{name}\AppData\Local\Android\Sdk\android-ndk-r19\ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk 我无法编译com\u
C:\Users\{name}\Desktop\MyApplication\libraries\tess-two-master\tess-two\jni> C:\Users\{name}\AppData\Local\Android\Sdk\android-ndk-r19\ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk
我无法编译com\u googlecode\u tesseract\u android//src/api/baseapi.cpp
它给了我这个错误:
Android NDK: WARNING:com_googlecode_tesseract_android/Android.mk:tess: non-system libraries in linker flags: -latomic
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
com_googlecode_tesseract_android/./src/api/baseapi.cpp:45:10: fatal error
'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
make: *** [obj/local/arm64-v8a/objs/tess/./src/api/baseapi.o] Error 1
这是我的Android.mk
LOCAL_PATH := $(call my-dir)
TESSERACT_PATH := $(LOCAL_PATH)/com_googlecode_tesseract_android/src
LEPTONICA_PATH := $(LOCAL_PATH)/com_googlecode_leptonica_android/src
LIBJPEG_PATH := $(LOCAL_PATH)/libjpeg
LIBPNG_PATH := $(LOCAL_PATH)/libpng
# Just build the Android.mk files in the subdirs
include $(call all-subdir-makefiles)
baseapi.cpp中的所有4个标头都显示相同的错误-
#include <iostream>
#include <string>
#include <iterator>
#include <fstream>
#包括
#包括
#包括
#包括
如果有人能帮我找出问题所在,那就太好了。多谢各位
PS:我正在使用NDK r19。在这种情况下,您的
NDK构建
不会自动加载应用程序.mk文件。您必须明确指定它:
…ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
或者,您可以从tesstwo目录(jni上面的目录)运行ndkbuild
。在这种情况下,ndk build
将同时找到.mk文件,您不需要指定ndk\u项目路径
:
…ndk-build
唯一的区别是输出(obj和libs目录)将在附近创建,而不是在jni目录中创建。可能与
平台/android-16
中没有arch-arm64
目录重复。至少在我安装的NDK中没有。它只存在于android-21和更高版本的平台上。@Michael除了应用程序STL之外,我没有做任何改变。我直接从网站上下载了它。@Michael ndk build知道这一点,64位ABI的版本将增加到21位。您只需将\ifdef\uu cplusplus\endif
包含在您面临此问题的所有头文件中即可<代码> >“CPLUS PLUS”/CODE >将被定义为正在通过C++编译器运行的任何编译单元。它工作得非常好。:)
…ndk-build