我使用 Eclipse 成功地使用链接到这个问题的方向来构建 Botan ,但是,Android Studio 应该取代 Eclipse 进行 Android 开发,所以我现在正试图让它在 Android Studio 中构建,但它失败了缺少头文件<iosfwd>
。我收到以下错误:
Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/User1/Development/android-ndk-r10d/ndk-build NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/Users/User1/application1/android/workspace/app/build/intermediates/ndk/debug/Android.mk APP_PLATFORM=android-19 NDK_OUT=/Users/User1/application1/android/workspace/app/build/intermediates/ndk/debug/obj NDK_LIBS_OUT=/Users/User1/application1/android/workspace/app/build/intermediates/ndk/debug/lib APP_ABI=all
Error Code:
2
Output:
In file included from /Users/User1/application1/android/workspace/app/src/main/jni/botan/botan_all.cpp:8:0:
/Users/User1/application1/android/workspace/app/src/main/jni/botan/botan_all.h:11:18: fatal error: iosfwd: No such file or directory
#include <iosfwd>
^
compilation terminated.
make: *** [/Users/User1/application1/android/workspace/app/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/app//Users/User1/application1/android/workspace/app/src/main/jni/botan/botan_all.o] Error 1
我应该<iosfwd>
从哪里获取头文件以及如何指示 Android Studio 找到它?
更新
我找到了以下生成文件: .../workspace/app/src/main/jni/botan/Android.mk
# jni/botan/Android.mk:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := botan
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := botan_all.cpp
LOCAL_CPPFLAGS := -DBOTAN_USE_GCC_INLINE_ASM=0
include $(BUILD_SHARED_LIBRARY)
我尝试在之后添加该行LOCAL_CPPFLAGS
:
LOCAL_C_INCLUDES := $(ANDROID_STL_INC)
但是构建似乎不受影响,我得到了同样的错误,所以我尝试编辑LOCAL_CPPFLAGS
为:
LOCAL_CPPFLAGS := SEE_IF_THIS_BREAKS_THE_BUILD
看看我的编辑是否被看到,但同样,在 header 上完全相同的原始失败iosfwd
。所以看来我的编辑不是构建的一部分。
如何让 Android Studio 提供更多信息,以便弄清楚它是如何进入失败的构建步骤的。目前,当我构建时,它会暂停,然后给出带有错误消息的窗口,但没有显示所有中间步骤来获得它,这可能会显示哪些 makefile 得到了它。