链接到无效运行时的raco可执行文件

时间:2016-02-19 13:26:40

标签: macos racket homebrew dynamic-linking raco

我通过自制软件安装了Racket。当我尝试使用raco创建可执行文件时,按:

raco exe my_prog.rkt

...生成的二进制文件链接到具有无效路径的Racket运行时。这可以通过otool -L

看到
my_prog:
    /usr/local/Cellar/racket/6.3/lib/racket/Racket.framework/Versions/6.3_3m/Racket (compatibility version 0.0.0, current version 0.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

racket/之后,正确的路径不包含lib/。因此,当您尝试运行二进制文件时,dyld会抱怨并中止执行。

我可以使用install_name_tool

解决此问题
chmod +w my_prog
install_name_tool -change /usr/local/Cellar/racket/6.3/lib/racket/Racket.framework/Versions/6.3_3m/Racket /usr/local/Cellar/racket/6.3/lib/Racket.framework/Versions/6.3_3m/Racket my_prog

......但是,显然这不是我想要一直做的事情!

据推测,raco从某处获得了这条无效路径。有什么方法可以正确配置吗?

0 个答案:

没有答案