Как связать mysql-клиент, установленный с Homebrew, с дизель-кли? - PullRequest
0 голосов
/ 03 марта 2019

Я пытался установить инструмент CLI Rust Diesel с помощью cargo install diesel_cli, но установка не удалась с ошибкой связывания

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

Я установил клиент MySQL с помощью Homebrew: brew install mysql-client.Во время установки я получил следующее предупреждение:

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 и флаги, как в этом предупреждающем сообщении, но я все еще получаю вышеуказанную ошибку компоновки при попытке установить утилиту diesel-cli.Я не знаком с тем, как сделать связывание в Rust - есть ли дополнительные шаги, которые мне нужно сделать, чтобы связать mysqlclient напрямую?

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Со своей стороны, я не заставлял его работать только с mysql-клиентом.Мне пришлось установить mysql с

brew install mysql

В конце концов, важно то, что у вас есть версия динамической библиотеки mysqlclient.

Mines, где установлено здесь:

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

И это сработало.

0 голосов
/ 03 марта 2019

Cargo игнорирует LDFLAGS и CPPFLAGS, вместо этого вы должны установить RUSTFLAGS.Нечто подобное этому непроверенному вызову:

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

Соответствующая документация .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...