【问题标题】:Android: error: use of undeclared identifier 'fseeko'Android:错误:使用未声明的标识符“fseeko”
【发布时间】:2019-04-08 10:56:23
【问题描述】:

当我尝试使用其源代码在 Android 中构建一个 boost 库时,我遇到了错误

release|armeabi-v7a : D:/Android/Sdk/ndk->bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include/c++/v1\fstream:969:9: 发布|armeabi-v7a:错误:使用未声明的标识符“fseeko” 发布|armeabi-v7a : if (fseeko(__file_, __sp, SEEK_SET))

下面是我的 CMake

externalNativeBuild {
            cmake {
                cppFlags "-std=c++14 -frtti -fexceptions -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
                arguments '-DANDROID_SDK_ROOT=D:/Android/Sdk'
                arguments '-DANDROID_EMULATOR_AVD=PixelArm'
                arguments  '-DCMAKE_BUILD_TYPE=Debug'
                arguments '-DZLIBS_DIR=' + zlib_dir_libs
                arguments '-DZLIB_INC_DIR='  + zlib_dir_inc
                arguments '-DANDROID_PLATFORM=android-21'

            }
        }
        ndk {
            // Specifies the ABI configurations of your native
            // libraries Gradle should build and package with your APK.
            // need to also have ~ boost binaries built for each abi specified here
//            abiFilters 'armeabi-v7a', 'x86', 'x86_64', 'arm64-v8a'
            abiFilters 'armeabi-v7a'
        }

【问题讨论】:

    标签: android c++ boost android-ndk


    【解决方案1】:

    fseeko64 在 android-24 之前不可用。您必须提高您的minSdkVersion 或停止使用_FILE_OFFSET_BITS=64

    https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#using-with-early-api-levels

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 2014-08-04
      • 2020-05-05
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多