首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试为arm64构建apk时出现链接器错误

尝试为arm64构建apk时出现链接器错误
EN

Stack Overflow用户
提问于 2019-06-25 16:34:49
回答 1查看 529关注 0票数 0

我正在尝试重建一个旧的应用程序(最初是armeabi)来支持arm64。当前NDK为android-ndk-r10e-windows-x86_64。我必须使用这个NDK版本。其他NDK版本将破坏当前代码。

我将应用程序级别build.gradle从

abiFilters "armeabi"

abiFilters "armeabi",'arm64-v8a'

但是,当我第一次尝试构建时,我得到错误:包含致命错误: sys/timeb.h:没有这样的文件或目录# C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:8:38: // for ftime()

似乎在android-ndk-r10e中,文件timeb.h被删除了。我不知道如何修复它,所以我手动将"platforms\android-14\arch-x86\usr\include\sys\timeb.h“复制到"platforms\android-21\arch-arm64\usr\include\sys\timeb.h”,然后重试,我得到了以下错误:

C:/Users/user/Documents/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o: In function tu_timer::init_timer()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:15: undefined reference toftime‘C:/Users/user/Documents/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o: In function tu_timer::get_ticks()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:21: undefined reference toftime’tu_timer::init_timer()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:15: undefined reference to2.exe: error: ld returned 1 exit status

应用级build.gradle

defaultConfig {
    //applicationId "applicationId"
    minSdkVersion 14
    targetSdkVersion 26

    // Enabling multidex support.
    multiDexEnabled true

    ndk {
        moduleName "native-lib"
        //abiFilters "armeabi"
        abiFilters "armeabi",'arm64-v8a'
    }
}

Application.mk

APP_PLATFORM := android-9
APP_STL := gnustl_static
APP_ABI := all

#APP_OPTIM := debug
APP_OPTIM := release

ifeq ($(APP_OPTIM),debug)
  APP_CPPFLAGS := -O0 -g $(APP_CPPFLAGS)
else
  APP_CPPFLAGS := -O2 -DNDEBUG -g $(APP_CPPFLAGS)
endif

我不知道下一步该怎么办。请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 05:01:01

安卓不支持ftime。请改用gettimeofday。请参阅man page

4.2BSD,POSIX.1-2001。POSIX.1-2008删除了ftime()的规范。

此函数已过时。不要用它。如果以秒为单位的时间足够,则可以使用time(2);gettimeofday(2)提供微秒;clock_gettime(2)提供纳秒,但不是那么广泛。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56749914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档