MacOS 10.14.6安装PAPI报错找不到timer_create相关符号如何解决
MacOS 10.14.6安装PAPI报错解决方案
你遇到的报错是因为MacOS原生没有实现POSIX标准的timer_create系列接口,这组接口是Linux特有的实现,不是缺少系统依赖导致的,标准Linux编译流程无法直接在MacOS上运行。
你可以选择以下两种方案完成安装:
方案一:使用Homebrew安装适配版(推荐)
直接执行如下命令即可完成安装,Homebrew维护的PAPI包已经完成了MacOS系统兼容适配,自动替换了timer相关实现,兼容10.14.6版本的Mojave系统:
brew install papi
方案二:手动编译适配版源码
如果需要自定义编译参数,可以按如下步骤修改配置流程:
- 拉取源码后切换到稳定发布分支,避免开发分支的兼容性问题,示例:
git checkout papi-7-1-0-t - 进入papi/src目录后,执行configure时指定MacOS专属的timer实现,跳过POSIX timer校验:
./configure --prefix=$PWD/install --with-timer=macos - 后续正常执行编译安装即可:
make && make install
注意事项
MacOS默认开启的SIP(系统完整性保护)会禁止用户态程序访问硬件性能计数器,如果你需要使用PAPI的硬件计数功能,需要先关闭SIP;仅使用软件计数功能不需要调整SIP配置。
内容的提问来源于stack exchange,提问作者Alexsetyaev
相关产品推荐
相关产品推荐

