window下尝试编译出arm的一个有依赖关系的模块.so(非裸奔)

需求:一个可以直接使用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!无解中。。。

扫描二维码关注公众号,回复: 2377187 查看本文章

方式二:

链接: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了、

猜你喜欢

转载自blog.csdn.net/qq_37887537/article/details/81196168