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

Ubuntu下安装pHash库时出现`fftw_init_threads`未定义引用错误求助

解决pHash编译时undefined reference to fftw_init_threads的问题

我之前也碰到过一模一样的问题,这个错误的根源很清晰:你的编译链接过程中没有包含FFTW3的线程支持库,fftw_init_threads是FFTW3线程扩展的专属函数,只存在于libfftw3_threads库中,但从你的编译日志能看到,当前链接命令只调用了单线程版本的libfftw3。

下面给你两种可行的解决办法:

方法一:安装FFTW3线程开发包并重新配置

首先确保你安装了FFTW3的线程开发组件,在Ubuntu终端执行:

sudo apt-get update && sudo apt-get install libfftw3-threads-dev

接着清理之前的编译残留文件,重新执行配置和编译:

make clean
./configure
make

正常情况下,这一步会让configure脚本自动检测到线程库,并在后续链接时自动加入-lfftw3_threads参数。

方法二:手动修改Makefile添加线程库链接

如果方法一没生效,大概率是configure脚本没正确识别到线程库,你可以直接修改examples目录下的Makefile:

  1. 打开pHash-0.2.9.6/examples/Makefile
  2. 找到生成test_texthash的链接命令行(对应日志里的那一行),在-lfftw3的后面加上-lfftw3_threads
  3. 保存文件后重新执行make

修改后的链接命令大概会是这样:

/bin/sh ../libtool --tag=CXX --mode=link g++ -O2 -ffast-math -O3 -L/usr/local/lib -lssl -lcrypto -o test_texthash test_texthash.o ../src/libpHash.la -lmpg123 -lsamplerate -lsndfile -lswscale -lavformat -lavutil -lavcodec -lpng -ljpeg -lfftw3 -lfftw3_threads

⚠️ 注意:-lfftw3_threads必须放在-lfftw3之后,链接器是按顺序查找符号的,顺序不对依然会出现找不到函数的问题。

内容的提问来源于stack exchange,提问作者Aref Riahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:42:36