在 Cygwin 中软链接可执行文件

Soft linking an executable in Cygwin

我正在尝试将 Julia 与 Cygwin 一起使用(我对这两者都不是很了解,很清楚)。我已经构建并测试了 Julia,一切似乎都很好。对于来自终端的 运行 Julia,似乎我需要进入 Julia/usr/bin,然后键入 ./julia.exe(或只是 ./julia)。这在任何其他目录中都不起作用。

Julia 文档说

'Once it is built, you can run the julia executable using its full path in the directory created above (the julia directory), or, to run it from anywhere... add a soft link to the julia executable in the julia directory to /usr/local/bin (or any suitable directory already in your path)'

并且由于我希望能够在任何目录中使用 Julia,这似乎是个好主意。但是,我尝试了

的各种排列

ln -s /Julia/usr/bin/julia /bin

(使用 /bin 而不是 /usr/local/bin,因为这似乎是东西保存在 cygwin 中的地方,而不是 linux 本身),每次我输入 julia 或 ./julia我刚收到一条消息说 -bash: julia: command not found.

我想这真的很容易 - 我不是很有经验。任何帮助,将不胜感激。

编辑 - 此问题已解决。我为 julia.exe 所在的正确路径尝试了许多不同的可能的东西,包括相对路径 Coding/Julia/usr/bin,(我应该首先提到它)这导致了我在下面接受的答案.使用该答案,我现在可以使用命令 julia.运行 Julia 在任何目录中的任何位置。

问题是 ln 需要 link 到 绝对 路径,而不是相对路径。这个问题在 OP 中并不明显,因为你写的路径 看起来 是绝对的,因为它以 / 开头。

类似 ln -s /home/<username>/Coding/Julia/usr/bin/julia.exe /usr/local/bin/julia.exe 的东西应该可以工作。

注意: 通过在 LINK_NAME 的末尾包含 .exe,您可以同时调用 juliajulia.exe。无论您是否打算使用长格式,最好在 TARGET 和 LINK_NAME.

中都包含 .exe