【问题标题】:gcc cross compile helloworld for ARM on Windowsgcc 在 Windows 上为 ARM 交叉编译 helloworld
【发布时间】:2014-06-23 22:24:40
【问题描述】:

我正在使用 Xilinx Zedboard。我交叉编译了一个需要 math.h 库的 c 项目。当我在 Zedboard 上运行它时,我得到一个 ./my_binary: not found 错误。我能够使用-static 标志进行交叉编译并让二进制文件正确执行。但是,由于它生成的二进制文件非常庞大,因此非常无益。

有许多非常相似的问题。即this onethis one。然而,它们都在 Linux 机器上进行交叉编译。 Windows 上的 Linaro 编译器单独的文件系统有很大不同,因此第二个问题的答案并不完全适合。我也不想静态交叉编译,因为二进制文件太大了。

如果有人在 Windows 上解决了这个问题。我真的可以使用一些帮助。如果它是我链接到的第二个问题所建议的符号链接问题,我可以使用一些帮助来确定缺少哪个链接。正如我所说,Linaro 编译器的文件结构与那篇文章中提到的 Linux 非常不同。所以链接不仅仅是剪切和粘贴的解决方案。此外,我浏览了lib/ 目录,也没有找到该帖子中提到的名称的.so 文件。 (虽然我猜这与我运行 Windows 而不是 Linux 有关。)

非常感谢任何建议。

【问题讨论】:

    标签: windows gcc arm


    【解决方案1】:

    首先尝试:

    readelf -d my_binary
    

    您可能会找到所有依赖项。将所有依赖项复制到您的 arm 机器上。

    【讨论】:

    • ldd 在 windows 或 arm 机器上都不可用
    • 在您的 Windows 机器上尝试 readelf。比如$ readelf -d t
    • 好的,一个依赖是libm.so.6。我如何将它“复制”到我的手臂机器上?我如何获取它以及将它(按目录)放在 arm 机器上的什么位置?
    • 在你的主机上搜索这个文件,复制到你的arm机器上。和可执行文件放在同一目录下
    • 好的,例如,如果它在路径中,那可以吗?
    猜你喜欢
    • 2013-05-31
    • 2015-12-20
    • 2016-02-05
    • 1970-01-01
    • 2011-08-20
    • 2017-07-05
    • 2019-06-19
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多