gpt4 book ai didi

arm - 如何在树莓派上安装 crystal-lang?

转载 作者:行者123 更新时间:2023-12-02 23:41:18 25 4
gpt4 key购买 nike

当我尝试按照 debian install instructions 将其添加到源时我收到这个错误。我猜这意味着没有适用于它的arm包。

Failed to fetch https://dist.crystal-lang.org/apt/dists/crystal/InRelease Unable to find expected entry 'main/binary-armhf/Packages' in Release file (Wrong sources.list entry or malformed file)

我猜我可能需要从源代码安装它。我该如何使用arm cpu来做到这一点?当我检查并运行 make 时,我收到错误:

You need to have a crystal executable in your path! Makefile:113: recipe for target '.build/crystal' failed make: *** [.build/crystal] Error 1

如有任何建议,我们将不胜感激。

最佳答案

编辑:raspbian 上现在有一个 Crystal 的半官方存储库,请在此处查看:http://public.portalier.com/raspbian

<小时/>

Crystal 不为 ARM 构建 Debian 软件包,您是对的,您需要从源代码构建。

但是,Crystal 编译器是用 Crystal 编写的。这就提出了一个显而易见的问题:如何让编译器构建编译器。答案是交叉编译:在 x86 台式计算机上构建 ARM 二进制文件并将其复制。

根据我上次交叉编译的内存,这是一个快速步骤:

  1. 在 x86 台式电脑上安装 Crystal,并检查其是否正常工作。
  2. 安装all required libraries在桌面和 Raspberry Pi 上。您需要在 Raspberry Pi 和桌面上使用相同的 LLVM 版本。这可能是最困难和最长的一步。您可以从 debian testing 安装 llvm 3.9对于 ARM,请参阅 this stackoverflow post了解如何通过 debian 测试仅安装 LLVM。
  3. 检查两台计算机上 git 的源代码,然后运行 ​​make deps
  4. 通过在 git 存储库的根目录中运行以下命令来交叉编译编译器:
    ./bin/crystal build src/compiler/crystal.cr --cross-compile --target arm-unknown-linux-gnueabihf --release -s -D without_openssl -D without_zlib
    此命令将在当前目录中创建一个 crystal.o 文件,并输出链接器命令 (cc crystal.o -o crystal ...)。
  5. crystal.o复制到树莓派,然后运行链接器命令。请务必编辑 llvm_ext.o 的绝对路径,使其指向 Raspberry Pi 上的 Crystal checkout,而不是桌面上的 checkout。另请确保命令中对 llvm-config 的所有引用均适用于正确的 LLVM 版本。例如,在 Raspbian 上将 /usr/local/bin/llvm-config 更改为 llvm-config-3.9
  6. 在当前目录中运行 crystal 可执行文件 (./crystal -v) 并确保其正常工作。
  7. 确保将CRYSTAL_PATH环境变量设置为lib:/path/to/crystal/source/checkout/src,以便编译器在运行时可以找到标准库编译应用程序。

关于arm - 如何在树莓派上安装 crystal-lang?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42796143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com