Я использую android NDK r8d и eclipse Juno. Я пытаюсь скомпилировать код С++, который использует С++ 11, например, mutex
, lock_guard
, shared_ptr
и т.д. В собственном проекте андроида в eclipse.
Я получаю такие ошибки, как:
"error: 'shared_ptr' не является членом 'std'"
"фатальная ошибка: mutex: нет такого файла или каталога"
Я столкнулся с аналогичным вопросом здесь. Кажется, они работают для них, но объяснение там не завершено, поэтому я не могу заставить его работать для меня.
Я добавил "NDK_TOOLCHAIN_VERSION=4.7"
в файл Application.mk
и "LOCAL_CFLAGS += -std=c++11"
to Android.mk
. Тем не менее, он не компилируется.
В приведенной выше ссылке говорится:
"Убедитесь, что в стандартную библиотеку включен путь (например, /android -ndk-r8d/sources/cxx-stl/gnu-libstdc++/4.7/include) находится в целевых настроек."
Как и где его вставить?
Я также получаю ошибки в Eclipse IDE (в исходном коде перед компиляцией). Я знаю, что я должен определить "__GXX_EXPERIMENTAL_CXX0X__"
, чтобы решить их, но я просто не знаю, куда его поместить.
Итак, если кто-то может опубликовать ответ с полным объяснением того, как скомпилировать и сделать работу eclipse с С++ 11, было бы здорово.