【发布时间】:2017-12-21 23:01:11
【问题描述】:
你好水晶祭司,
我在我的开发虚拟机上构建了一个应用程序,势利小人,在 fedora26 上运行水晶 0.23.1。它在本地运行良好。这是一个发布版本。我将应用程序复制到我的主机 fedora27,并尝试运行它,我收到一个错误,抱怨 shard.yml。在我的任何 centos 机器上都会发生同样的情况。错误:
Error opening file
'/vagrant/Projects/crystal/snob/src/snob/../../shard.yml' with mode 'r': No such file or directory (Errno)
Failed to raise an exception: END_OF_STACK
[0x40e807] __crystal_raise +375
[0x411f05] ???
[0x41f595] ???
[0x417291] ???
[0x41611a] ???
[0x42d37a] main +7914
[0x7f8783b5100a] __libc_start_main +234
[0x40e2da] _start +42
[0x0] ???
我错过了什么?我的印象是这是一个独立的可执行文件。再多的挠头或谷歌搜索都不会出现任何问题。
提前感谢任何可以帮助我的人。与此同时,我还在寻找。
【问题讨论】:
-
没有源代码我无法回答这个问题。似乎有人在您的应用程序或它使用的碎片之一中编写了代码,这取决于
shard.yml。 Crystal 可执行文件通常是独立的,但可以编写一个不是的,这就是这里发生的事情。 -
我仔细查看了我的源代码,发现在 version.cr 中包含对 shard.yml 的引用导致了问题。而不是:
VERSION = "x.x.x"我曾尝试使用VERSION = begin YAML.parse(File.read(File.join(__DIR__, "../..", "shard.yml")))["version"].as_s end谢谢@RX14 的回复。 -
用您找到的解决方案回答您自己的问题怎么样?然后问题就可以结束了。而且您的问题可能会在一段时间内频繁出现,所以一个好的解决方案可能会让爱好者感兴趣!
标签: crystal-lang