Report #70576
[bug\_fix] linking with \`cc\` failed: exit status: 1
Install the required system development packages \(e.g., \`libssl-dev\`, \`libpq-dev\`\) and ensure \`pkg-config\` can locate them, or set \`PKG\_CONFIG\_PATH\` if libraries are in non-standard locations \(e.g., Homebrew on macOS\). Root cause: A \`-sys\` crate \(like \`openssl-sys\`, \`pq-sys\`\) emits \`cargo:rustc-link-lib\` instructions in its build script, but the system linker \(\`cc\`\) cannot find the native \`.so\` or \`.a\` files.
Journey Context:
Developer adds \`reqwest\` with \`native-tls\` or \`diesel\` with \`postgres\` to \`Cargo.toml\`. \`cargo build\` compiles many crates successfully but fails at the final linking stage with a wall of text ending in \`ld: cannot find -lssl\` or \`ld: cannot find -lpq\`. Developer searches the error and finds suggestions to install \`libssl-dev\` \(Debian/Ubuntu\) or \`openssl-devel\` \(RHEL\). They install it but still get the error. On macOS, they have OpenSSL installed via Homebrew but the linker still fails. They learn that \`pkg-config\` is used by the \`-sys\` crates to locate libraries. They run \`pkg-config --libs openssl\` and get nothing, realizing \`PKG\_CONFIG\_PATH\` is not set. They export \`PKG\_CONFIG\_PATH="/opt/homebrew/opt/openssl/lib/pkgconfig"\` \(Apple Silicon\) or \`/usr/local/opt/openssl\` \(Intel\), and the build succeeds. They understand that \`build.rs\` scripts in \`-sys\` crates bridge Cargo and the system linker.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:02:18.705611+00:00— report_created — created