我<stdint.h>在使用-std=c++0xGCC 4.4.3(适用于Android)时遇到麻烦:
// using -std=c++0x
#include <stdint.h>
uint64_t value; // error: 'uint64_t' does not name a type
Run Code Online (Sandbox Code Playgroud)
但使用-std=gnu++0x作品:
// using -std=gnu++0x
#include <stdint.h>
uint64_t value; // OK
Run Code Online (Sandbox Code Playgroud)
是<stdint.h>使用C++ 0x中不兼容?
我想使用Cygwin交叉编译Android的ICU静态库.到目前为止,我已经能够配置和制作Cygwin/MSVC和Cygwin版本.我已经安装了android-ndk-r7,可以在toolchains目录中看到一个版本的gcc.几个例子建议使用host:arm-eabi - 但这在我的机器上不存在.
我已经在/ icu/source/config中将mh-linux复制到mh-unknown并运行以下命令:
export HOST_ICU=/cygdrive/d/__/External/SQLite/icu
export ICU_CROSS_BUILD=/cygdrive/d/__/External/SQLite/icu-cygwin
export NDK_ROOT=/cygdrive/d/__/android-ndk-r7
export CPPFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/ -O3 -fno-short-wchar -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -fno-short-enums -nostdlib"
export CXXFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/ -O3 -fno-short-wchar -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -fno-short-enums -nostdlib"
export CFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/ -O3 -fno-short-wchar -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -fno-short-enums -nostdlib"
export LDFLAGS="-lc -Wl,-rpath-link=$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/ -L $NDK_ROOT/platforms/android-8/arch-arm/usr/lib/"
$HOST_ICU/source/configure --with-cross-build=$ICU_CROSS_BUILD --enable-extras=no --enable-strict=no --enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no --enable-tools=no --host=arm-eabi --with-data-packaging=archive
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
checking for ICU version numbers... release 4.8.1.1, library 48.1.1, unicode version 6.0
checking build system type... i686-pc-cygwin
checking host system type... …Run Code Online (Sandbox Code Playgroud)