之前做过一个工具,使用pyinstaller -F xxx.py打包成可执行文件,将可执行文件拷贝到另外的linux系统运行./xxx,出现bash: ./xxx: No such file or directory
明明xxx文件就在当前目录下,怎么就没找到呢?
在系统上核对了下,发现都是arm的架构,就是操作系统版本不一样,怎么就出现这种错误呢?
后面用命令file xxx查看文件,发现提示interpreter /lib64/ld-linux-aarch64.so.1信息。会不会是这个依赖文件不存在呢?使用ls /lib64/ld-linux-aarch64.so.1一查,果然没找到这个文件。有些操作系统只有/lib目录下有这个文件,在/lib64下没有。
问题比较清晰明了了,上面提示找不到文件的就是说找不到/lib64/ld-linux-aarch64.so.1文件,解决办法也简单,就是添加一个软链接,将/lib/ld-linux-aarch64.so.1文件链接过来,链接命令为ln -s /lib/ld-linux-aarch64.so.1 /lib64/ld-linux-aarch64.so.1
再次执行./xxx,发现可以正常启动工具,问题解决。