高版本为何编译不成功:
在版本比较高的vsftp源码中的Makefile中可能会有这么一句话:
LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
如可此时交叉编译,虽然可以编译成功,但 file vsftpd 会发现,vsftpd是 shared object,而不是我们想要的executable
scw@scw-VB:~/buildroot-2017.02.3/dl/vsftpd-3.0.3$ file vsftpd
vsftpd: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 2.6.38, stripped
经过试验发现,把 ( LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now )中的