首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Crystal Lang:无法在OSX El Capitan上使用MySQL库编译应用程序

问Crystal Lang:无法在OSX El Capitan上使用MySQL库编译应用程序
EN

Stack Overflow用户
提问于 2016-08-07 11:12:55
回答 1查看 205关注 0票数 1

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

我遇到了一个问题,当使用MySQL绑定编译应用程序时,crystal编译器抛出以下错误:

代码语言:javascript
复制
$ crystal build src/test1.cr 
ld: library not found for -lmysqlclient

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

代码语言:javascript
复制
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版本中,我所需要做的就是创建一个符号链接,它就能做到:

代码语言:javascript
复制
ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

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

代码语言:javascript
复制
ln: /usr/lib/libmysqlclient.18.dylib: Operation not permitted

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

代码语言:javascript
复制
libmysqlclient.20.dylib libmysqld-debug.a   mecab
libmysqlclient.a    libmysqld.a     pkgconfig
libmysqlclient.dylib    libmysqlservices.a  plugin

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

移民到埃尔卡皮坦的人能给我们一些启发吗?做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-08-07 20:19:04

由于系统完整性保护,您不能在那里创建符号链接。但这实际上并不是必须的。

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

在这种情况下,install_name_tool是不必要的。这可能会改变加载器在运行时用来查找库的路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38810545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档