最近在使用汉枫模组时,最新的SDK编译需要再linux下编译,使用完整版本的ubuntu下进行编译,可以正常输出,但是在wsl下安装的ubuntu则会报错,报错内容如下,可以输出.bin程序,但是无法生成-upgrade.bin
LD out/lpt270.elf Generating BIN File to /home/airo/share/LPx70-HSF-2MB_v3.00.13/out/lpt270.bin Building Finish.
To flash build output.
sh: 1: ././tools/lzma: not found
sh: 1: ././tools/lzma: not found
Open file (out/lpt270.bin.lzma) failed
手动执行./lzam时提示No such file or directory,因此我们尝试查看可执行文件类型
file lzma
结果如下
lzma: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=8e7d16ecdf811346c9ef3a9be78c707ac4398edc, not stripped
可以看到lzma是32位的可执行文件。
由于我们安装的操作系统是64位的,因此无法运行32位系统,需要安装功能包,使得64位机能够运行32位的程序。具体指令如下
sudo apt-get install lib32z1
有些资料提示执行 "sudo apt-get install ia32-libs"安装32位支持库,从了解到的资料显示16.04以后就不支持这个了,可以用lib32z1替代,若执行了安装ia32-libs也会提示不存在了,建议安装lib32z1
安装完成后,则可以正常运行执行编译生成操作了。
查看系统版本可以通过下面的指令
getconf LONG_BIT