/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/11/../../../../lib/libwiringPi.so: undefined reference to `crypt'
collect2: error: ld returned 1 exit status
错误解析:
这个错误消息表示链接器无法找到`crypt`函数的定义,该函数被`libwiringPi.so`库引用。
可能的原因包括:
1. 编译时未指定包含`crypt`函数的库。您需要确保在编译时指定了正确的库。例如,如果`crypt`函数在`-lcrypt`库中,则应使用`gcc -L /path/to/library -lcrypt ...`进行编译。
2. 指定的库路径不正确或未包含所需的版本。请检查您的编译命令中的库路径和名称是否正确,并确保它们指向包含所需版本的库。
3. 所使用的库文件可能已损坏或缺失。尝试重新安装或替换相关库文件以解决问题。
请注意,从2021年5月7日起,Linux内核已弃用`crypt`函数,因此建议使用其他安全的方法来实现密码哈希,如`bcrypt`或`argon2`。
解决方法:
加上 -lcrypt