在Windows平台上使用NDK构建静态库时出现错误:
process_begin: CreateProcess( "PATH"\android-ndk-r8b\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ar.exe, "some other commands" ) failed.
make (e=87): The parameter is incorrect.
make: *** [obj/local/armeabi-v7a/staticlib.a] Error 87
make: *** Waiting for unfinished jobs....
Run Code Online (Sandbox Code Playgroud)
所有源文件都已成功构建,并且在撰写目标文件时会发生此错误.
在Ubuntu中构建此项目时,我不会收到此错误,它只发生在Windows上.
我想我发现了这个问题:CreateProcess Win API函数的第二个参数lpCommandLine的最大长度为32,768个字符.但在我的情况下,它超过32,768个字符.
我怎么能解决这个问题?
如何获取已返回的谷歌静态地图的范围,例如,跟随请求
http://maps.googleapis.com/maps/api/staticmap?center=0.0,0.0&zoom=10&size=640x640&sensor=false
Run Code Online (Sandbox Code Playgroud)
据我所知,完整的地球地图是256x256图像.这意味着n个垂直像素包含x度,但n个水平像素包含2x度.对?
正如谷歌所说, 中心定义了地图的中心,与地图的所有边缘等距.据我所知,像素(或度数?)的等距离.并且每个后续缩放级别使水平和垂直尺寸的精度都加倍.所以,我可以找到每个缩放值的地图经度的delta值:
dLongitude = (HorizontalMapSizeInPixels / 256 ) * ( 360 / pow(2, zoom) );
Run Code Online (Sandbox Code Playgroud)
纬度的相同计算:
dLatitude = (VerticalMapSizeInPixels / 256 ) * ( 180 / pow(2, zoom) );
Run Code Online (Sandbox Code Playgroud)
VerticalMapSizeInPixels和HorizontalMapSizeInPixels是URL中地图大小的参数.
计算经度的delta值是好的,但对于Latitude它是错误的.我找不到Latitude的delta值,有一些delta错误.
我在我的电脑上使用俄语语言环境设置.
如果我愿意:
class numpunct_withpoint: public numpunct<char>
{
protected:
/// Override the function that gives the decimal separator.
char do_decimal_point() const
{
return '.';
}
};
...
locale loc(std::locale::classic(), new numpunct_withpoint);
std::locale::global(loc);
Run Code Online (Sandbox Code Playgroud)
然后
printf("%f", 3.14);
Run Code Online (Sandbox Code Playgroud)
输出是:
3,14
Run Code Online (Sandbox Code Playgroud)
小数分隔符是","不像do_decimal_point函数!如何使用C++语言环境更改小数分隔符的C语言环境设置?
谢谢你的回答!
但是,C setlocale函数会对C++ cout对象产生影响吗?
setlocale(LC_NUMERIC, "C");
Run Code Online (Sandbox Code Playgroud)
这会在通过cout打印十进制值时产生影响吗?
c++ ×2
android-ndk ×1
bounds ×1
google-maps ×1
locale ×1
map ×1
printf ×1
setlocale ×1
std ×1
windows ×1