gpt4 book ai didi

android - 使用 Android NDK 编译 Boost 时 assert.h 冲突

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:16 25 4
gpt4 key购买 nike

尝试使用 Android NDK 使用 Boost c++ 库编译程序时,出现以下类型的错误:

In file included from /home/afeder/android/0ad/jni/lib/boost/boost/assert.hpp:50,
from /home/afeder/android/0ad/jni/lib/boost/boost/random/linear_congruential.hpp:21,
from /home/afeder/android/0ad/jni/src/source/scriptinterface/ScriptInterface.h:34,
from /home/afeder/android/0ad/jni/src/source/ps/World.h:28,
from /home/afeder/android/0ad/jni/src/source/main.cpp:58:
/home/afeder/android/android-ndk-r7/platforms/android-5/arch-arm/usr/include/assert.h: At global scope:
/home/afeder/android/android-ndk-r7/platforms/android-5/arch-arm/usr/include/assert.h:63: warning: redundant redeclaration of 'void __assert(const char*, int, const char*)' in same scope
/home/afeder/android/android-ndk-r7/platforms/android-5/arch-arm/usr/include/assert.h:63: warning: previous declaration of 'void __assert(const char*, int, const char*)'
/home/afeder/android/android-ndk-r7/platforms/android-5/arch-arm/usr/include/assert.h:64: warning: redundant redeclaration of 'void __assert2(const char*, int, const char*, const char*)' in same scope
/home/afeder/android/android-ndk-r7/platforms/android-5/arch-arm/usr/include/assert.h:64: warning: previous declaration of 'void __assert2(const char*, int, const char*, const char*)'

显然,Boost 提供的一组“断言”函数与 NDK 本身提供的函数之间存在某种冲突,但我该如何解决?

谢谢。

最佳答案

头文件有#define 宏,它封装了整个头文件的内容。在您的源代码中,您可以更愿意取消定义您不需要的 header 。

例如,如果 Boost 头文件具有#define BOOST_ASSERT_HPP 并且 NDK 具有 ANDROID_ASSERT_H,则在您的源代码中您可以使用 #undef BOOST_ASSERT_HPP 取消定义 Boost 相关头文件。

关于android - 使用 Android NDK 编译 Boost 时 assert.h 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8876575/

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