You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86_64架构下subhook_unprotect符号未找到链接错误求助

解决链接错误:未找到subhook_unprotect符号

问题原因

subhook库中的subhook_unprotect是平台相关的封装函数,编译subhook.c时若未指定对应平台的编译宏,编译器不会生成该函数的实现,最终导致链接阶段找不到符号。针对x86_64架构的macOS,需确保编译时启用内存保护相关的宏定义。

解决办法

修改编译命令,为subhook.c添加SUBHOOK_USE_MPROTECT编译宏(macOS下通过mprotect处理内存权限),同时明确指定架构参数:

g++ -dynamiclib -fPIC -v -o finalcalling.dylib finalversion.cpp /Users/~/Desktop/c/subhook-master/subhook.c -std=c++11 -DSUBHOOK_USE_MPROTECT -arch x86_64

额外检查点

  • 确认subhook.c文件完整,subhook-master源码包中包含macOS平台的mprotect实现代码
  • 若使用Apple Silicon(arm64)架构,将-arch x86_64替换为-arch arm64,宏定义保持不变

内容的提问来源于stack exchange,提问作者Big Bored

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:15:31