• [Android-NDK编译] ndk 编译 c++ 兼容性问题汇总整理


    1.__int64找不到符号

    采用int64_t来代替:
    #if defined(__ANDROID__)
    typedef int64_t __int64;
    #endif
    2.<sys/io.h>找不到
    android下不需要直接引用该文件,用下面的宏去掉即可
    #if !defined(__APPLE__) && !defined(__ANDROID__) #include <sys/io.h> #endif
    3.SO_NOSIGPIPE找不到
    SO_NOSIGPIPE在mac中存在,可惜在android中不存在。请使用MSG_NOSIGNAL来代替
    #if defined(__ANDROID__) #define SO_NOSIGPIPE MSG_NOSIGNAL #endif
    4.uint64_t, int64_t, uint32_t, int32_t等类似类型找不到
    请检查你的头文件包含,将系统的头文件放在自已的头文件之前。因为你自己的头文件有可以定义了重复的类型,导致系统头文件出错。
    5.S_IREAD、S_IWRITE或者__S_IREAD、__S_IWRITE找不到
    请用S_IRUSR、S_IWUSR代替
    6.pthread_cancel找不到
    这个android并未实现,有一些替代方法,具体见:http://bbs.rosoo.net/thread-10289-1-1.html
    7.getifaddrs, <ifaddr.h> 找不到
    android并没有实现。不过谢天谢地,有人已经帮我们实现了。感谢一下他:
    https://github.com/kmackay/android-ifaddrs
    8.<sys/statvfs.h>找不到
    请用此来代替:
    #if defined(__ANDROID__) #  include <sys/vfs.h> #  define statvfs statfs #else #  include <sys/statvfs.h> #endif
  • 相关阅读:
    day10T3改错记
    day9T1改错记
    day8T1改错记
    洛谷P5068[Ynoi2015]我回来了(bfs+bitset)
    BZOJ4939[Ynoi2016]掉进兔子洞(莫队+bitset)
    [学习笔记]dsu on tree
    [学习笔记]FWT(快速沃尔什变换)
    [学习笔记]FMT(快速莫比乌斯变换)&子集卷积(待填坑)
    POJ-1743-Musical Theme(后缀数组)
    后缀数组模板
  • 原文地址:https://www.cnblogs.com/superdo/p/5177334.html
Copyright © 2020-2023  润新知