JBL*_*JBL 5 c++ swig android-ndk
我目前在Android上遇到了针对我的应用的编译问题.
在编译我的本机库时遇到以下错误ndk-build:
BackgroundDisplayConfiguration.h:12:23: fatal error: glm/glm.hpp:
No such file or directory
#include <glm/glm.hpp>
^
Run Code Online (Sandbox Code Playgroud)
让我感到困惑的是,我已经按照Android.mk以下方式为这个仅头文件库指定了一个路径:
LOCAL_CPPFLAGS += -I../../glm/include
Run Code Online (Sandbox Code Playgroud)
并且这条路径存在并且是正确的,而且如果我搞砸了这条路径,我会在包含的其他文件中得到相同的错误glm.hpp.当路径正确时,只有这个文件会产生错误,我不明白为什么.有什么指针吗?
编辑:好的,这更令人费解.include选项出现在每个文件的每个编译器命令中,但不出现在swig生成的大包装器的编译器命令(输出my library_native_wrap.o)上,这就是它产生错误的地方......好吧,它至少解释了观察到的行为.
所以我找到了一个解决方法,尽管感觉不太正确。
事实上,我发现在编译我的库的每个源代码时,编译器命令实际上具有 include 选项,但是,当编译 swig (那个大的独特的 c++ 包装文件)的输出时,该选项不再存在。
我找到了一种方法来纠正这个问题,将我的包含路径添加到LOCAL_EXPORT_C_INCLUDES.
由于某种原因,LOCAL_CPPFLAGS编译包装器时不使用它们......