Как я могу включить 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.