Arm 如何在rapsberry pi上安装crystal lang?
当我尝试根据将其添加到源中时,我得到了此错误。我猜这意味着它没有arm软件包 获取失败在发布文件中找不到预期的条目“main/binary armhf/Packages”(源错误。列表条目或格式错误的文件) 我猜我可能需要从源代码安装它。我将如何使用arm cpu来实现这一点?当我签出并运行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 如果您有
make
时,我得到了错误:
您需要在路径中有一个crystal可执行文件!Makefile:113:
目标“.build/crystal”的配方制作失败:**[.build/crystal]
错误1
如果您有任何建议,我们将不胜感激。编辑:现在有一个半官方的crystal on raspbian存储库,请在这里查看:
Crystal并没有为ARM构建Debian软件包,您需要从源代码构建,这是正确的 然而,Crystal编译器是用Crystal编写的。这就提出了一个显而易见的问题,即如何让编译器构建编译器。答案是交叉编译:在x86台式计算机上构建一个arm二进制文件,然后跨平台复制 根据我上次交叉编译时的记忆,这里有一个快速的步骤:
makedeps
./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