gcc在Windows上交叉编译ARM的helloworld
我正在使用Xilinx Zedboard。我交叉编译了一个需要math.h库的c项目。当我在Zedboard上运行它时,我得到一个gcc在Windows上交叉编译ARM的helloworld,windows,gcc,arm,Windows,Gcc,Arm,我正在使用Xilinx Zedboard。我交叉编译了一个需要math.h库的c项目。当我在Zedboard上运行它时,我得到一个/my_binary:notfound错误。我能够使用-static标志进行交叉编译,并正确执行二进制文件。然而,这是非常无用的,因为它会生成巨大的二进制文件 有许多非常类似的问题。即和。然而,它们都是在Linux机器上交叉编译的。Windows上Linaro编译器单独使用的文件系统明显不同,因此第二个问题的答案并不完全合适。我也不想静态交叉编译,因为二进制文件太大了
/my_binary:notfound
错误。我能够使用-static
标志进行交叉编译,并正确执行二进制文件。然而,这是非常无用的,因为它会生成巨大的二进制文件
有许多非常类似的问题。即和。然而,它们都是在Linux机器上交叉编译的。Windows上Linaro编译器单独使用的文件系统明显不同,因此第二个问题的答案并不完全合适。我也不想静态交叉编译,因为二进制文件太大了
如果有人在Windows上解决了这个问题。我真的需要一些帮助。如果这是一个符号链接问题,正如我链接到的第二个问题所建议的那样,我可以利用一些帮助来找出缺少的链接。正如我所说,Linaro编译器的文件结构与那篇文章中提到的Linux非常不同。因此,链接不仅仅是剪切和粘贴解决方案。此外,我在lib/
目录中搜索,也没有找到该帖子中提到的.so文件名。(尽管我猜这与我运行的是Windows而不是Linux有关。)
如果有任何建议,我将不胜感激。首先尝试:
readelf -d my_binary
您可以找到所有依赖项。将所有依赖项复制到您的arm机器。ldd在windows或windows机器上的arm machinetry readelf上都不可用。例如
$readelf-dt
Ok,一个依赖项是libm.so.6
。我如何“复制”到我的手臂机器?如何获取该文件以及将其放置在arm机器的何处(按目录)?在主机上搜索此文件,复制到arm机器。把它放在与可执行文件相同的目录下,好吧,例如,如果它在路径中,那就可以了?