Как я могу включить C++0x в сборке vs-android

Я использую vs-android (http://code.google.com/p/vs-android) для компиляции проектов C++ для платформы android с помощью ndk.

Все это работает хорошо, за исключением случаев, когда компилируется код, использующий функции из стандарта C++0x/ C++11, такие как std::function, nullptr... Я предполагаю или, по крайней мере, надеюсь, что смогу это исправить добавив опцию компилятора -std= C++0x.

Я попытался добавить это в "Дополнительные параметры" в разделе "Командная строка", и некоторые ошибки, казалось, исчезли, но не все из них. В том числе вызывает проблемы, types.h жалуется на uint64_t не существует и многие другие подобные проблемы.

Кто-нибудь знает, как это исправить? В коде нет ничего плохого, так как он отлично компилируется с msvc10 для платформы Windows. Я использую Visual Studio 2010.

Спасибо

2 ответа

vs-android теперь поддерживает gcc 4.6, который имеет довольно хорошую поддержку C++11, и при использовании -std=gnu++0x вместо -std=c++0x uint64_t тип определен.

Даже если vs-android использует Visual Studio в качестве IDE, он по-прежнему использует gcc 4.4.3 в качестве компилятора (выпущенного 2,5 года назад). Например, согласно http://gcc.gnu.org/projects/cxx0x.html, nullptr поддерживается только начиная с gcc 4.6, поэтому вы не можете его использовать.

Я не знаю о uint64_t проблема. Но вам лучше придерживаться C++03 (или даже C) для NDK.

Другие вопросы по тегам