代码之家  ›  专栏  ›  技术社区  ›  mustafa

未定义的“\uuuMH\uExecute\uHeader”符号

  •  1
  • mustafa  · 技术社区  · 7 年前

    Undefined symbols for architecture arm64:
      "__mh_execute_header", referenced from:
    

    那是什么呢 __mh_execute_header

    1 回复  |  直到 7 年前
        1
  •  4
  •   Ken Thomases    7 年前

    <mach-o/ldsyms.h>

    此文件描述链接编辑器定义的符号。语义 它被引用,用户定义它们是一个错误(请参见 手册页(1))。标准UNIX链接编辑器符号:_结束, __Apple Mach-O链接编辑器不支持etext和_edata。这些符号在Mach-O对象中实际上没有意义 支持的文件和链接编辑器符号(此处描述) 程序可以使用符号 __mh_执行_头并遍历其程序的加载命令,以确定程序中任何节或段的结束(或开始) 在符号表中编码而不带底杆的符号名称具有 在这个文件中。带有前导下栏的宏是符号名称 而没有的是“C”中编码的名称。

    特定符号 __mh_execute_header

    链接编辑器定义的符号[_mh_execute_header]的值是 mach-O可执行文件类型中mach标头的地址。 是的 这个 符号的类型是绝对的,因为标题不是任何符号的一部分 部分

    因此,链接器只定义 __mh_执行_头 链接可执行文件时,不要链接库、框架或捆绑包。

    假设您的框架代码没有引用 _mh_execute_header

    您没有包括符号的引用位置,但这可能会帮助您识别罪犯。如果这些静态库来自第三方,那么您必须向它们寻求帮助来解决它。

        2
  •  0
  •   Jinlong Fan    5 年前

    你应该改变密码

    dladdr(&mh\u执行头和信息);