需求:一个可以直接使用window命令控制的,使用Makefile编译出一个可以直接在arm系统上使用的一个so。
查找到的资料: yagarto和codesourcery都是在windows下用的,官方已经编译打包好的EXE文件 cygwin下可以自己编译源代码,做出GNU工具链 mingw也可以实现 还有一些在windows下用的IDE,专门针对GNU工具链的,code::blocks,emide等
实现方案探寻:
1.在window上直接利用cygwin的环境交叉编译器arm-elf-gcc编译出的是arm的二进制程序:
链接:https://pan.baidu.com/s/1oKqzQ1x1U3d_9y51YrDwGg 密码:2eer
下载解压,直接将GUNARM/bin添加到window环境变量中就可以使用window命令来使用。但是不是我想要的。
2.ADS软件也可以编译arm可执行文件。
是一款独立的软件,编译的好像也是裸奔的,与需求不符。
3.arm-linux-gcc在cygwin上编译:
方式一:
下载脚本文件http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
tar xvjf buildroot-snapshot.tar.bz2
cd buildroot
make menuconfig:这里出错了,说fork: Resource temporarily unavailable! 重装了一下,可以使用了!
里面有许多选项,主要修改了其中的交叉编译器选项,乱改一通啊
make
报错:You must install 'cpio' on your build machine!无解中。。。
方式二:
链接:https://pan.baidu.com/s/1k21m3wIsNRdtNW0VBGNEjg 密码:1fyq,里面有一个完整的文档。
使用的是crosstool进行安装
但是在编译linux中arch/arm/.config文件时出错,没有正确生成?你可以试试。
4.Mingw做arm交叉编译:
方式一:参考文档:codeSourcery交叉编译环境
他的文档比较乱的,也可以看一下我这个目的性强的版本:
(一)直接下载Window上的最新的直接安装包,一切默认安装即可。下载链接:https://pan.baidu.com/s/1pg5WIi2d0tBROPn11_3z1g 密码:3pvi。
(二)将C:\Users\Administrator\MentorGraphics\Sourcery_CodeBench_Lite_for_ARM_GNU_Linux\bin的默认安装路径(如果你安装文件的时候改了路径,请记得修改),添加到Window全局环境变量中。
(三)编写一个简单的hello.c程序,输入下面的命令编译first.c文件(需要加-static选项)。
# arm-none-linux-gnueabi-gcc -static -o hello hello.c
(四)将hello发送到arm的板子上面即可。./hello查看你的helloworld.
这样就简单的完成了一个应用程序,而不是裸机程序了。下面可以试着做一个我们所需要的so了、