Arm 如何在rapsberry pi上安装crystal lang?

Arm 如何在rapsberry pi上安装crystal lang?,arm,raspberry-pi3,crystal-lang,Arm,Raspberry Pi3,Crystal Lang,当我尝试根据将其添加到源中时,我得到了此错误。我猜这意味着它没有arm软件包 获取失败在发布文件中找不到预期的条目“main/binary armhf/Packages”(源错误。列表条目或格式错误的文件) 我猜我可能需要从源代码安装它。我将如何使用arm cpu来实现这一点?当我签出并运行make时,我得到了错误: 您需要在路径中有一个crystal可执行文件!Makefile:113: 目标“.build/crystal”的配方制作失败:**[.build/crystal] 错误1 如果您有

当我尝试根据将其添加到源中时,我得到了此错误。我猜这意味着它没有arm软件包

获取失败在发布文件中找不到预期的条目“main/binary armhf/Packages”(源错误。列表条目或格式错误的文件)

我猜我可能需要从源代码安装它。我将如何使用arm cpu来实现这一点?当我签出并运行
make
时,我得到了错误:

您需要在路径中有一个crystal可执行文件!Makefile:113: 目标“.build/crystal”的配方制作失败:**[.build/crystal] 错误1


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

编辑:现在有一个半官方的crystal on raspbian存储库,请在这里查看:


Crystal并没有为ARM构建Debian软件包,您需要从源代码构建,这是正确的

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

根据我上次交叉编译时的记忆,这里有一个快速的步骤:

  • 在x86台式PC上安装Crystal,并检查其是否正常工作
  • 安装在桌面和Raspberry Pi上。在Raspberry Pi和桌面上需要相同的LLVM版本。这可能是最难、最长的一步。您可以从for ARM安装llvm 3.9,有关如何仅从debian测试安装llvm的信息,请参阅
  • 在两台计算机上从git中检出源代码,然后运行
    makedeps
  • 通过在git存储库的根目录中运行以下命令交叉编译编译器:
    ./bin/crystal build src/compiler/crystal.cr --cross-compile --target arm-unknown-linux-gnueabihf --release -s -D without_openssl -D without_zlib
    
    /bin/crystal build src/compiler/crystal.cr——交叉编译——目标arm未知linux gnueabihf——不带openssl的发布-s-D——不带zlib的发布版
    此命令将在当前目录中创建
    crystal.o
    文件,并输出链接器命令(
    cc crystal.o-o crystal…
  • crystal.o
    复制到raspberry pi,然后运行linker命令。确保编辑
    llvm_ext.o
    的绝对路径,使其指向Raspberry Pi上的Crystal签出,而不是桌面上的签出。还要确保命令中对
    llvm config
    的所有引用都是针对正确的llvm版本的。例如,在Raspbian上将
    /usr/local/bin/llvm config
    更改为
    llvm-config-3.9
  • 在当前目录(
    /crystal-v
    )中运行crystal可执行文件,并确保其工作正常
  • 确保将
    CRYSTAL\u PATH
    环境变量设置为
    lib:/PATH/to/CRYSTAL/source/checkout/src
    ,以便编译器在编译应用程序时可以找到标准库
    谢谢。既然我在mac上编译crystal,我还需要在raspberry pi上安装垃圾收集器吗?我不确定
    llvm\u ext.so
    在哪里。我在哪里编辑该路径?人们在使用Raspian构建的
    碎片时有困难吗?在使用
    crystal deps
    shards install
    时,我看到了“undefined symbol:GC\u get\u push\u other\u root”的变化。不,不是这样。这里有更多关于bug@pdoherty926的答案你好,我记下了在raspbian-上编译crystal 0.26的内容。它是俄文的,但你可以阅读shell命令。谷歌翻译似乎在你的页面上做了一项体面的工作。干得好,@constXife