在OS X Ventura 13.6.6编译ntfs-3g时无法找到libgcrypt的问题
在OS X Ventura 13.6.6编译ntfs-3g时遇到AM_PATH_LIBGCRYPT未定义的问题解决方法
问题背景
在OS X Ventura 13.6.6系统编译ntfs-3g时,执行./autogen.sh -vi出现报错:
configure.ac:338: error: possibly undefined macro: AM_PATH_LIBGCRYPT
通过brew安装的libgcrypt(路径/usr/local/Cellar/libgcrypt/1.10.3)无法被autoreconf识别,怀疑是库路径配置问题。尝试注释掉configure.ac中与enable-crypto相关的代码后编译成功,但不确定该功能是否必要。
解决方案
方案1:保留加密功能,修复libgcrypt识别问题
brew安装的libgcrypt对应的m4宏文件可能不在autoreconf默认搜索路径里,手动指定路径即可解决:
- 先确认libgcrypt的aclocal文件路径,brew安装的通常在
/usr/local/share/aclocal或/usr/local/Cellar/libgcrypt/1.10.3/share/aclocal - 执行autogen.sh时指定ACLOCAL_PATH:
ACLOCAL_PATH=/usr/local/share/aclocal ./autogen.sh -vi
如果上述路径无效,换成libgcrypt具体的aclocal路径:
ACLOCAL_PATH=/usr/local/Cellar/libgcrypt/1.10.3/share/aclocal ./autogen.sh -vi
- 之后正常执行编译命令(无需修改configure.ac):
LDFLAGS="-L/usr/local/lib -lintl" ./configure --prefix=/usr/local --mandir=/usr/local/share/man --exec_prefix=/usr/local make sudo make install
方案2:禁用加密功能(已验证可行)
如果不需要访问加密的NTFS分区,可以直接禁用该功能:
- 编辑
configure.ac,找到包含AM_PATH_LIBGCRYPT的段落(约338行),注释掉所有与enable-crypto相关的条件判断和宏调用 - 执行以下已验证成功的编译命令:
./autogen.sh -vi LDFLAGS="-L/usr/local/lib -lintl" ./configure --prefix=/usr/local --mandir=/usr/local/share/man --exec_prefix=/usr/local make sudo make install
关于enable-crypto功能的说明
enable-crypto是ntfs-3g用于支持加密NTFS分区挂载、解密的功能,若你不需要处理加密NTFS分区,禁用该功能完全不影响常规NTFS读写、挂载等核心操作。
内容的提问来源于stack exchange,提问作者simona
相关产品推荐
相关产品推荐

