完整报错如下:
/usr/local/lib/libfastcommon.so: undefined reference to `fcntl64@GLIBC_2.28'
collect2: error: ld returned 1 exit status
objs/Makefile:236: recipe for target 'objs/nginx' failed
make[1]: *** [objs/nginx] Error 1
make[1]: Leaving directory '/root/FastDFS安装-完成/nginx-1.16.1'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2
这是因为下载的libfastcommon版本错误.当然你水平够高的话可以去折腾GLIBC...但是我个人觉得还是算了吧
# ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
ubunt18.04系统支持的glibc是2.27显然2.28的是不可能存在的.
然后注意删除两处libfastcommon.so:
①libfastcommon-1.0.38/src/libfastcommon.so
②/usr/lib64/libfastcommon.so
②是上述报错的直接原因,①如果存在,那么进行第二次编译时,会懒编译,直接把①拷贝到②路径中,
所以①也必须删除
目前我自己测试过的已知版本和适用系统如下:
软件或系统 | 版本 |
libfastcommon | V1.0.7 |
fastdfs | V5.05 |
Ubuntu | 16.04 |
软件或系统 | 版本 |
libfastcommon | V1.0.38 |
fastdfs | V5.11 |
Ubuntu | 19.10 |
推荐采用: