解决vsftpd编译时的错误:could not read symbols: File in wrong format
2014-06-26 19:55
531 查看
编译vsftpd时,出现could not read symbols: File in wrong format错误提示,后搜寻相关资料,是因为vsftpd的一个安装文件没有考虑到64位平台库文件位置。
如果的的系统是64位平台,解决办法如下: 编辑源代码安装目录下的vsf_findlibs.sh, 将其中路径中的lib替换成lib64。 快速的vim替换命令是: :%s?lib/?lib64/? (需要检查是否完全替换)如果检查系统是否为64位平台? uname -m如果输出 x86_64,说明是64位平台 为了避免你重新编辑的麻烦,我将vsftpd部分代码重新编辑,使之可以在32位和64平台中顺利编译。 修改如下:1. 修改了builddesf.h, 添加了PAM, TCP_WRAPPERS支持2. 修改了vsf_findlibs.sh, 使之可以在32位或64位平台上顺利编译。3. 修改了vsftpd.conf, 适应一般禁止匿名访问的FTP站点的配置文件 或者 原因是x86_64环境下vsftpd源代码下的vsf_findlibs.sh没处理好库文件的调用关系;可手动修改vsf_findlibs.sh中的相关代码,或者是用下面的简单方式修改相关lib的链接
rm -f /lib/libpam.so.0 ---这里删除的是链接文件,放心
ln -s /lib64/libpam.so.0.77 /lib/libpam.so.0
1.2 /lib/libcap.so.1: could not read symbols: File in wrong format
因同样的原因引起,所以修改方式同上:
rm -f /lib/libcap.so.1
ln -s /lib64/libcap.so.1.10 /lib/libcap.so.1
以上修改后,再编译就不会报错。当然为了不引起其他程序调用lib出错,最好是将lib的相关链接改回去。
如果的的系统是64位平台,解决办法如下: 编辑源代码安装目录下的vsf_findlibs.sh, 将其中路径中的lib替换成lib64。 快速的vim替换命令是: :%s?lib/?lib64/? (需要检查是否完全替换)如果检查系统是否为64位平台? uname -m如果输出 x86_64,说明是64位平台 为了避免你重新编辑的麻烦,我将vsftpd部分代码重新编辑,使之可以在32位和64平台中顺利编译。 修改如下:1. 修改了builddesf.h, 添加了PAM, TCP_WRAPPERS支持2. 修改了vsf_findlibs.sh, 使之可以在32位或64位平台上顺利编译。3. 修改了vsftpd.conf, 适应一般禁止匿名访问的FTP站点的配置文件 或者 原因是x86_64环境下vsftpd源代码下的vsf_findlibs.sh没处理好库文件的调用关系;可手动修改vsf_findlibs.sh中的相关代码,或者是用下面的简单方式修改相关lib的链接
rm -f /lib/libpam.so.0 ---这里删除的是链接文件,放心
ln -s /lib64/libpam.so.0.77 /lib/libpam.so.0
1.2 /lib/libcap.so.1: could not read symbols: File in wrong format
因同样的原因引起,所以修改方式同上:
rm -f /lib/libcap.so.1
ln -s /lib64/libcap.so.1.10 /lib/libcap.so.1
以上修改后,再编译就不会报错。当然为了不引起其他程序调用lib出错,最好是将lib的相关链接改回去。
相关文章推荐
- 解决vsftpd编译时的错误:could not read symbols: File in wrong format
- lib_clapack.a(dlasyf.o): could not read symbols: File in wrong format---- 交叉编译opencv2.0遇到的错误解决
- GCC 源码编译 mpc mprf gmp 不用make(否则会有lib/libgmp.so: could not read symbols: File in wrong format等错误)
- Apache 安装过程中出错/usr/lib/libexpat.so: could not read symbols: File in wrong format的解决办法
- could not read symbols: File in wrong format
- /libexpat.so: could not read symbols: File in wrong format
- 关于 could not read symbols: File in wrong format 问题的解决方案
- could not read symbols: File in wrong format
- /libexpat.so: could not read symbols: File in wrong format
- [linux+openscada+qt]could not read symbols: File in wrong format
- lib64SDL_intermediates/lib64SDL.a: could not read symbols: File format not recognized
- libpcap库在64位系统上编译产生错误原因:Could not read symbols:?
- could not read symbols: File format not recognized
- vsftpd的配置说明,以及553 Could not create file.错误的解决
- could not read symbols: File format not recognized
- Could not read symbols:Linux/UNIX系统下编译时,常见的一类报错信息解决方法
- Apache编译安装:/usr/lib/libexpat.so: could not read symbols解决方法
- ADS编译错误Error: Fatal L6002U:Could not open file:.....解决办法
- TTserver 编译/usr/local/lib/libbz2.a: could not read symbols: Bad value解决
- htslib库安装过程中的编译错误,libz.a: could not read symbols: Bad value