Мы с коллегой работаем на MacBook с текущей версией Android Studio (3.1.2).
Проект (идентичный исходный код и файлы сборки) строится на моей машине, но терпит неудачу на его.
Ошибка заключается в том, что конкретный файл C++ использует std::vector и assert, которые компилятор не может найти.
И решение просто для #include <vector> и #include <assert.h>
Я пытаюсь понять, почему он работает в моей системе, а не в его.
Я просматриваю настройки Android Studio для некоторых настроек компилятора «автоматически включать C++ stdlib», но ничего не вижу.
Это возможно. Но у меня вопрос: как возникает несоответствие? Исходный код / сценарии сборки идентичны. И мы оба используем последнюю версию Android Studio.
Я думаю, что трое (на данный момент) «голосующих за закрытие», возможно, прыгнули с дула. Это озадачивающая проблема с кодом. Два старших разработчика поставили в тупик. Этот сайт призван помочь в подобных ситуациях. По крайней мере, проявите любезность, чтобы оправдать свой голос.





Вы используете ту же версию NDK? Стандарт STL по умолчанию недавно изменился (с gnustl на libC++). Как указывает @Richard Critten, наиболее вероятный случай состоит в том, что один из заголовков, которые вы включаете, включает vector / assert.h, но ваш коллега использует другой STL, где это не так.
I'm looking through Android Studio's settings for some 'automatically include C++ stdlib' compiler setting, but I can't see anything
Я был бы удивлен невероятно, если бы эта функция существовала.
Включены ли какие-либо другие стандартные файлы заголовков? Стандартные файлы заголовков могут включать (а могут и не включать) другие стандартные файлы заголовков.