交叉编译c文件的问题

在设置了交叉编译的环境变量以后,我们可以使用命令

$ arm-linux-gnueabihf-gcc <待编译文件.c> -o <输出文件名>

但是在编译的时候可能还是会出现一些问题,比如说:

bash: /home/zy/ArmWork/Toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux/bin/arm-linux-gnueabihf-gcc: 没有那个文件或目录

 刚开始以为是环境变量的问题,不过再三检查环境变量后发现并没有什么问题,在网上百度了一下,据@zqs194博主的说法,说是64位系统的缘故,64位系统需要安装32位运行库,该博主提供了三种方法:

方法一:$ sudo apt-get install lib32z1

 方法二:$ sudo apt-get install g++-multilib

 方法三:$ sudo dpkg --add-architecture i386

               $ sudo apt-get update

               $ sudo apt-get install ia32-libs

在这里我选择了第一种方法,但是在编译的时候又出现了新的问题(博主的方法没错哈,可能由于多方面原因,导致我出现了新的问题): 

arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

再次咨询度娘,然后说的是,既然官方文件出现了 libstdc++.so.6,那就安装吧:

$ sudo apt-get install libstdc++6 
$ sudo apt-get install lib32stdc++6

再次编译,问题解决,顺利得到可执行文件,问题顺利解决!

 这仅仅是对我所做的一些过程做一些记录,有什么不对或者不清楚的地方希望大家批评指正,要是能对有同样的问题的小伙伴有所启发,那么这篇文章的目地也就达到了,谢谢大家。

猜你喜欢

转载自blog.csdn.net/qq_38642470/article/details/82388948
今日推荐