如何链接从Homebrew安装的mysql-client和diesel-cli?

问题描述 投票:0回答:2

我一直在尝试使用cargo install diesel_cli安装Rust Diesel CLI工具,但安装失败并出现链接错误

ld: library not found for -lmysqlclient
 clang: error: linker command failed with exit code 1 
(use -v to see invocation)

我使用Homebrew:brew install mysql-client安装了MySQL客户端。在安装过程中,我收到以下警告:

mysql-client is keg-only, which means it was not symlinked into /usr/local,
because conflicts with mysql.
If you need to have mysql-client first in your PATH run:
  echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
For compilers to find mysql-client you may need to set:
  export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
  export CPPFLAGS="-I/usr/local/opt/mysql-client/include”

我在该警告消息中设置了PATH和flags,但在尝试安装diesel-cli工具时仍然遇到上述链接错误。我不熟悉如何在Rust中进行链接 - 我需要在这里执行额外的步骤来直接链接mysqlclient吗?

mysql macos rust linker-errors
2个回答
3
投票

货物忽略LDFLAGSCPPFLAGS,你应该设置RUSTFLAGS。像这样未经测试的调用:

RUSTFLAGS="-L/your_lib -I/your_include" cargo install diesel_cli

Relevant documentation


0
投票

在我这边,我没有让它只与mysql客户端一起工作。我不得不安装mysql

brew install mysql

最后,重要的是你有一个mysqlclient动态库的版本。

在这里安装的地雷:

/usr/local/lib/libmysqlclient.21.dylib
/usr/local/Cellar/mysql/8.0.15/lib/libmysqlclient.21.dylib

它奏效了。

© www.soinside.com 2019 - 2024. All rights reserved.