在android中为特定的api级别编译c ++

时间:2012-07-19 12:54:17

标签: android c++ android-ndk

我想编译特定api级别的代码。例如api level 7.我使用ndk-8。这有什么选择吗?

现在我在windows控制台中使用ndk-build.cmd命令进行编译。我不知道怎样才能知道支持哪种api级别。

2 个答案:

答案 0 :(得分:3)

这似乎没有很好地记录(即使在NDK文档中),但是如果你有一个Application.mk(与你的根Android.mk相同的目录),如果你有一行APP_PLATFORM:= android-7 (或者你想要的任何平台版本),它将构建到那个。 Application.mk的NDK文档中没有记录这一点。根据文档,如果你在Android.mk中放置一个TARGET_PLATFORM行,它会使用它,但似乎有that doesn't work的信息。

答案 1 :(得分:0)

出色的回应,谢谢卡尔,你救了我的命。

我使用“APP_PLATFORM:= android-7”并且它有效。当我添加这一行时,编译给了我一个错误,即没有实现一个函数。然后,我把它的实现放在我的代码中,然后就可以了!

我认为较新的Android版本具有该功能但android-7却没有。

该函数是wcstombs(它在stdlib中)

及其实施

size_t wcstombs(register char *s, register const wchar_t *pwcs, size_t n){
register int i = n;
while (--i >= 0) {
    if (!(*s++ = *pwcs++))
        break;
}
return n - i - 1;
}

感谢