Конфликт assert.h при компиляции Boost с Android NDK - PullRequest
1 голос
/ 16 января 2012

При попытке скомпилировать программу с библиотеками Boost c ++ с использованием Android NDK я получаю следующий тип ошибки:

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*)'

Очевидно, что существует некоторый конфликт между набором функций "assert", предоставляемых Boost, и функциями, предоставляемыми самим NDK, но как мне разрешить это?

Спасибо.

1 Ответ

1 голос
/ 16 января 2012

Заголовочные файлы имеют макрос #define, который инкапсулирует все содержимое заголовочного файла.В вашем источнике вы можете отменить определение заголовка, который вам не нужен.

Пример, если в файле заголовка Boost есть #define BOOST_ASSERT_HPP, а в NDK есть ANDROID_ASSERT_H, в вашем источнике вы можете отменить определение Boostзаголовок с помощью #undef BOOST_ASSERT_HPP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...