我一直在研究在Visual Studio和MinGW / GCC上编译的一些C ++代码。
我一直在我的所有源文件中使用相对包含路径。
#include "../../../stuff.h"
然而,当我在Android NDK上编译时会出现一个大问题。
如果头文件具有相对包含到另一个头文件,则NDK似乎相对于原始文件包含它。
所以,如果在"a/b/c/source.cpp"
我做#include "../../header.h"
并在"a/header.h"
内部
#include "../hello.h"
我认为它与"hello.h"
文件路径相关,而不是来自source.cpp
。最终会在"a/b/header.h"
这是可以修复的,我将头文件中的所有包含重写为绝对路径,这是一个巨大的痛苦。我希望有一种方法可以通过NDK避免这种情况。我真的不确定问题究竟是什么,它可能是我需要设置的一些常见的make file命令或变量。
答案 0 :(得分:1)
你应该添加
LOCAL_C_INCLUDES :=" YOUR FILES DIRECTORY"
进入你的android.mk