gpt4 book ai didi

mysql - Crystal 郎 : can't compile App with MySQL library on OSX El Capitan

转载 作者:行者123 更新时间:2023-11-29 07:13:27 25 4
gpt4 key购买 nike

我正在将 Crystal Lang 开发迁移到运行 OSX El-Capitan 的新机器上。

我遇到了一个问题,当使用 MySQL 绑定(bind)编译应用程序时, Crystal 编译器会抛出此错误:

$ crystal build src/test1.cr 
ld: library not found for -lmysqlclient

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

Error: execution of command failed with code: 1: `cc -o "/Users/james/cprojects/test1/test1" "${@}"  -rdynamic  -lmysqlclient -lpcre -lgc -lpthread /usr/local/Cellar/crystal-lang/0.18.7_1/src/ext/libcrystal.a -levent -liconv -ldl -L/usr/lib -L/usr/local/lib`

在以前版本的 OSX 中,我所需要做的就是创建一个符号链接(symbolic link),它就可以解决问题:

ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

不幸的是,El Capitan,这是不可能的

ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

这是/usr/local/mysql/lib/的内容(请注意,现在我使用的是 v20 而不是 18)

libmysqlclient.20.dylib libmysqld-debug.a   mecab
libmysqlclient.a libmysqld.a pkgconfig
libmysqlclient.dylib libmysqlservices.a plugin

我看到了一些关于使用 XCode 特有的 install_name_tool 的想法。

任何迁移到 El Capitan 的人都可以透露一些信息吗?最好的方法是什么?

最佳答案

由于系统完整性保护,您无法在那里创建符号链接(symbolic link)。但这实际上并不是必要的。

只需将安装 MySQL 库的文件夹添加到“库搜索路径”build设置(或者,如果您不使用 Xcode 构建系统,请添加带有路径的 -L 链接器选项)。您在那里添加了“/usr/lib”和“/usr/local/lib”,但您的MySQL库位于“/usr/local/mysql/lib”中,因此链接器找不到它。

对于这种情况,不需要 install_name_tool。这可以更改加载程序在运行时用于查找库的路径。

关于mysql - Crystal 郎 : can't compile App with MySQL library on OSX El Capitan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com