qt程序移植到arm中,虽然是可执行文件,但为什么还是无法运行?

你是在虚拟机里编译的吧。。。

可执行文件实际上是一串二进制机器码,在虚拟机编译的时候默认用的G++(或者Qt的qmake)是基于x86的,就是这个机器码是给x86的芯片看的,arm看不懂!

举个例子,你用中文(Qt,实际上他用的是C++或者python)写了一篇文章,然后把他翻译成了英文(虚拟机上的G++编译得到的可执行文件),但德国人(arm)看不懂,你需要把他翻译成德语(arm G++交叉编译链),然后再给德国人看。

总结:你需要在虚拟机上下一个arm G++交叉编译链,重新编译后移植到arm上才能运行