2012-07-16 21 views
1

我正在使用vs-android(http://code.google.com/p/vs-android)为android平台编译C++项目NDK。如何在vs-android版本中启用C++ 0x

除了编译使用C++ 0x/C++ 11标准的功能的代码(如std :: function,nullptr)时,它一切运行良好......我假设或者至少希望我可以通过添加编译器选项-std = C++ 0x来解决这个问题。

我试图在“命令行”下的“其他选项”中添加一些错误,但有些错误似乎消失了,但并非全部都消失了。包括原因问题,types.h抱怨uint64_t不存在以及许多其他类似的问题。

有谁知道如何解决这个问题?代码没有问题,因为它完全针对Windows平台的msvc10编译。我使用Visual Studio 2010中

感谢

回答

1

即使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。

3

vs-android现在支持gcc 4.6,它具有相当不错的C++ 11支持,如果使用-std=gnu++0x而不是-std=c++0x,则定义uint64_t类型。