编译安装memtier_benchmark出现make无目标、configure语法错误
问题根因
两个报错为连锁触发,不存在独立的Makefile权限或文件损坏问题:
- 目录中现存的
Makefile.am、Makefile.in是autotools构建体系的模板文件,并非make命令可直接解析执行的最终Makefile。./configure脚本执行失败时不会生成正式构建用的Makefile,此时直接运行make必然抛出make: *** No rule to make target错误。 ./configure脚本报syntax error near unexpected token LIBEVENT_OPENSSL是核心故障点,触发原因是构建环境缺失必要依赖:要么未安装pkg-config工具,导致autoconf无法识别PKG_CHECK_MODULES宏定义;要么未安装带OpenSSL支持的libevent开发组件,无法完成依赖校验。
修复步骤
按顺序执行以下操作即可解决问题:
- 安装全量构建依赖,对应不同发行版执行对应命令:
- Debian/Ubuntu 系列:
sudo apt update sudo apt install build-essential autoconf automake libtool pkg-config libevent-dev libssl-dev zlib1g-dev- RHEL/CentOS/Rocky/AlmaLinux 系列:
sudo dnf groupinstall "Development Tools" sudo dnf install autoconf automake libtool pkgconfig libevent-devel openssl-devel zlib-devel - 进入memtier_benchmark源码根目录,重新生成构建脚本,清除旧损坏脚本的缓存影响:
autoreconf -ivf - 重新执行配置检测:
该步骤无报错退出后,源码目录下会生成可供make调用的正式Makefile文件。./configure - 执行编译与安装:
make -j$(nproc) sudo make install
若执行
autoreconf -ivf时仍提示宏相关错误,可检查系统中pkg.m4文件是否存在,正常安装pkg-config后该文件会自动纳入aclocal的搜索路径,无需手动修改配置。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

