当我尝试按照debian install instructions将其添加到源时,我收到此错误。我猜这意味着它没有手臂包。
无法获取https://dist.crystal-lang.org/apt/dists/crystal/InRelease无法在发布文件中找到预期的条目“main / binary-armhf / Packages”(错误的sources.list条目或格式错误的文件)
我猜我可能需要从源代码安装它。我怎么会用arm cpu做这件事?当我检查并运行make
时,我收到错误:
你需要在你的道路上有一个水晶可执行文件! Makefile中:113: 目标'.build / crystal'的配方失败了:*** [.build / crystal] 错误1
任何建议都将不胜感激。
答案 0 :(得分:18)
编辑:现在有一个半官方的水磨石藏书库,请点击这里查看:http://public.portalier.com/raspbian
Crystal不会为ARM构建Debian软件包,而且你需要从源代码构建它是正确的。
但是,Crystal编译器是用Crystal编写的。这提出了如何让编译器构建编译器的明显问题。答案是交叉编译:在x86台式计算机上构建arm二进制文件并将其复制。
基于我上次交叉编译的记忆,这是一个快速的步骤:
make deps
。./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 ...
)。crystal.o
复制到raspberry pi,然后运行链接器命令。请务必编辑llvm_ext.o
的绝对路径,使其指向Raspberry Pi上的Crystal结帐,而不是桌面上的结帐。还要确保命令中对llvm-config
的所有引用都是针对正确的LLVM版本的。例如,在Raspbian上将/usr/local/bin/llvm-config
更改为llvm-config-3.9
。./crystal -v
)中运行crystal可执行文件并确保其正常工作。CRYSTAL_PATH
环境变量设置为lib:/path/to/crystal/source/checkout/src
,以便编译器在编译应用程序时可以找到标准库。