gpt4 book ai didi

c++ - 仅在特定翻译单元中找不到头文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:15 27 4
gpt4 key购买 nike

我的应用目前在 Android 上遇到编译问题。

在使用 ndk-build 编译我的原生库时出现以下错误:

BackgroundDisplayConfiguration.h:12:23: fatal error: glm/glm.hpp: 
No such file or directory
#include <glm/glm.hpp>
^

让我感到困惑的是,我在我的 Android.mk 中指定了这个仅 header 库的路径,方式如下:

LOCAL_CPPFLAGS += -I../../glm/include

并且这条路径存在并且是正确的,但此外,如果我弄乱了这条路径,我会在包含 glm.hpp 的其他文件中得到同样的错误。当路径正确时,只有这个文件会产生错误,我不明白为什么。任何指针?

编辑: 好吧,这更令人费解。 include 选项出现在每个文件的每个编译器命令中,但不出现在 swig 生成的大包装器的编译器命令中(输出我的 library_native_wrap.o),这就是它产生错误的地方。 . 好吧,它至少解释了观察到的行为。

最佳答案

所以我找到了一个解决方法,尽管感觉不太合适。

事实上,我发现在编译我的库的每个源代码时,编译器命令实际上有 include 选项,但是,在编译 swig(那个大的独特的 c++ 包装文件)的输出时,这个选项不存在了。

我找到了一种方法来纠正这个问题,方法是将我的包含路径添加到 LOCAL_EXPORT_C_INCLUDES

出于某种原因,LOCAL_CPPFLAGS 在编译包装器时未使用...

关于c++ - 仅在特定翻译单元中找不到头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com