• MAC OS下编译apple跨平台的libevent库 (可延申到其它第三库)


    apple下的跨平台是指不同设备上的苹果系统以及同一系统在不同cpu体系的不同版本。

    前面一篇介绍如何用ndk编译android跨平台的第三库,那样的方法却不能应用在apple上。

    网上可以找到这么一个脚本,其主要过程和功能如下图:

    脚本主要依靠了xcrun -sdk命令来搜索出平台关联的编译程序和SDK目录位置。不像ndk的目录结构,苹果的目录结构不清晰有些又不统一,xcrun就是这个咨客,问它就是了。

    只要将脚本中相应的容器修改就可以应用到其它第三库的编译中去。

    接下来就编译过程中的怪问题。

    我编译libevent库目的是用在移动设备上,然而怪事就发生了。在darwin版本中可以使用kqueue,但移动系统版本就不能使用kqueue只能用poll。原因是configugre中有两项对kqueue的检测居然会有一项不能通过,其元凶却是无关的头文件stdlib.h。因为在configure中有对--host为darwin的处理,在检测项目之前stdlib.h己经被包含,所以在检测项目的代码段中没有对stdlib.h的包含。问题就是configure没有对--host为苹果其它系统定制相关的处理,好了进入检测项目时,函数引用不允许隐式声明,也就是没有头文件的声明,导致了检测项目的失败。只要在configure中相应的地方加上对stdlib.h的包含,搞定,全部版本的libevent都可以使用kqueue。

  • 相关阅读:
    linux 查看系统负载:uptime
    centos who命令 查看当前登录系统用户信息
    centos7 管理开机启动:systemd
    Linux ethtool 命令
    Linux ifconfig 命令
    linux centos7 目录
    POJ 1169
    POJ 1163
    POJ 1154
    POJ 1149
  • 原文地址:https://www.cnblogs.com/bbqzsl/p/5927230.html
Copyright © 2020-2023  润新知