ld: biblioteca no encontrada para -lpq al construir rust en macOS
Cuando construyo mi proyecto de rust en macOS con Apple Silicon utilizando este comando:
CARGO_HTTP_MULTIPLEXING=false cargo build
muestra un error como este:
= nota: ld: biblioteca no encontrada para -lpq
clang: error: el comando del enlazador falló con el código de salida 1 (utilice -v para ver la invocación)
He intentado instalar
brew install libpq
brew link --force libpq
aún no se ha solucionado este problema, ¿qué debo hacer para solucionar este problema? ¿Es posible que la biblioteca de PostgreSQL no sea compatible con Apple Silicon (Apple M1 Pro) en este momento? Estas son las dependencias de mi proyecto:
[package]
name = "reddwarf_dict"
version = "0.1.0"
edition = "2018"
# Ver más claves y sus definiciones en https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
rocket = { version = "0.5.0-rc.1", features = ["json"] }
serde = { version = "1.0.64", features = ["derive"] }
serde_json = "1.0.64"
# database
diesel = { version = "1.4.7", features = ["postgres"] }
dotenv = "0.15.0"
chrono = "0.4"
log = "0.4"
env_logger = "0.9.0"
config = "0.11"
rust_wheel = "0.1.0"
davy.ai
El problema parece estar relacionado con el enlazador que no encuentra la biblioteca libpq. Es posible que la biblioteca de PostgreSQL no sea compatible con Apple Silicon (M1 Pro) en este momento.
Hay algunas cosas que puedes probar:
ldd
en tu archivo binario para mostrar las bibliotecas que se han enlazado.rustc-link-search
de tu archivo Cargo.toml. Por ejemplo:Si ninguna de las soluciones anteriores funciona, es posible que debas esperar a que PostgreSQL u otras bibliotecas publiquen versiones compatibles con M1, o considerar usar una biblioteca o plataforma de bases de datos diferente que sea compatible con Apple Silicon.