我刚刚开始使用ndk-r5,我需要导入一个库
使用std :: numeric_limits,std :: sort和stl中的其他两个函数。
我不确定使用stlport是否支持这些功能,如果是这种情况,
我应该使用配置进行构建吗?
我从文档中读到的是,您必须在Application.mk上包含APP_STL:= stlport_static。多数民众赞成在我做的唯一的另一件事,但它无法正常工作,当编译器在提到的功能,我得到编译错误。
感谢您的任何建议。
最佳答案
通过用替换所有包含的内容,并修复了一些会出现的问题,我得以在Android上编译Box2D。
对于
std::numeric_limits::infinity()
我在用着
INFINITY /*as defined in float.h ... MAX_FLT is an alternative which might work*/
对于
std::sort(m_pairBuffer, m_pairBuffer + m_pairCount, b2PairLessThan)
我这样做:
#include <stdlib.h>
/*...*/
qsort(m_pairBuffer, m_pairCount, sizeof(b2Pair),b2PairQSORTLessThan);
具有上面定义的功能:
static int b2PairQSORTLessThan(const void*element1,const void*element2)
{
b2Pair *pair1=(b2Pair*)element1;
b2Pair *pair2=(b2Pair*)element2;
if (pair1->proxyIdA < pair2->proxyIdA)
return -1;//pair1 goes BEFORE pair2
else if (pair1->proxyIdA > pair2->proxyIdA)
return 1; // pair1 goes AFTER pair2
else{//if (pair1->proxyIdA == pair2->proxyIdA)
if (pair1->proxyIdB < pair2->proxyIdB)
return -1;
else if (pair1->proxyIdB > pair2->proxyIdB)
return 1;
}
return 0; // they are equal
}