Error: could not find native static library `ssl`, perhaps an -L flag is missing? on WIndows

I'm trying to build this project on windows. -> https://github.com/alexanderbanks/rust-api

When I run cargo build I get following error.

Please note: I have openssl, gcc, minwig all installed and added to PATH already on Windows 10.

 Running `rustc --crate-name openssl_sys C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\openssl-sys-0.9.58\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=30686fde3d8da997 -C extra-filename=-30686fde3d8da997 --out-dir C:\Users\ajink\RustProjects\rust-api\target\debug\deps -L dependency=C:\Users\ajink\RustProjects\rust-api\target\debug\deps --extern libc=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liblibc-2124712ae702a06f.rmeta --cap-lints allow -L native=C:\tools\vcpkg\installed\x64-windows-static\lib --cfg const_fn --cfg "osslconf=\"OPENSSL_NO_SSL3_METHOD\"" --cfg ossl101 --cfg ossl102 --cfg ossl102f --cfg ossl102h --cfg ossl110 --cfg ossl110f --cfg ossl110g --cfg ossl110h --cfg ossl111 --cfg ossl111b --cfg ossl111c -l static=ssl -l static=crypto -l dylib=gdi32 -l dylib=user32 -l dylib=crypt32 -l dylib=ws2_32 -l dylib=advapi32`
     Running `C:\Users\ajink\RustProjects\rust-api\target\debug\build\openssl-ff55014940c492b8\build-script-build`
     Running `rustc --crate-name rand C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\rand-0.3.23\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=65344f9e928a9b9c -C extra-filename=-65344f9e928a9b9c --out-dir C:\Users\ajink\RustProjects\rust-api\target\debug\deps -L dependency=C:\Users\ajink\RustProjects\rust-api\target\debug\deps --extern libc=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liblibc-2124712ae702a06f.rmeta --extern rand=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\librand-fc1c5951a73fc8c0.rmeta --cap-lints allow -L native=C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\winapi-x86_64-pc-windows-gnu-0.4.0\lib`
   Compiling hyper v0.10.16
       Fresh serde_derive v1.0.114
       Fresh diesel_infer_schema v0.16.0
   Compiling dotenv v0.10.1
   Compiling dotenv v0.9.0
error: failed to run custom build command for `rust-crypto v0.2.36`

Caused by:
  process didn't exit successfully: `C:\Users\ajink\RustProjects\rust-api\target\debug\build\rust-crypto-aa4b7b7c270b698b\build-script-build` (exit code: 101)
--- stdout
TARGET = Some("x86_64-pc-windows-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-pc-windows-gnu")
TARGET = Some("x86_64-pc-windows-gnu")
HOST = Some("x86_64-pc-windows-gnu")
CFLAGS_x86_64-pc-windows-gnu = None
CFLAGS_x86_64_pc_windows_gnu = None
HOST_CFLAGS = None
CFLAGS = None
DEBUG = Some("true")
running: "cc" "-O0" "-ffunction-sections" "-fdata-sections" "-g" "-m64" "-Wall" "-Wextra" "-o" "C:\\Users\\ajink\\RustProjects\\rust-api\\target\\debug\\build\\rust-crypto-679a5e96fcab9d96\\out\\src/util_helpers.o" "-c" "src/util_helpers.c"

--- stderr
thread 'main' panicked at '

Internal error occurred: Failed to find tool. Is `cc` installed? (see https://github.com/alexcrichton/gcc-rs#compile-time-requirements for help)

', C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\gcc-0.3.55\src\lib.rs:1672:5
stack backtrace:
   0: backtrace::backtrace::dbghelp::trace
             at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/dbghelp.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.46\src\backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src\libstd\sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src\libstd\sys_common/backtrace.rs:59
   4: core::fmt::write
             at src\libcore\fmt/mod.rs:1076
   5: std::io::Write::write_fmt
             at src\libstd\io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src\libstd\sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src\libstd\sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src\libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src\libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src\libstd/panicking.rs:486
  11: rust_begin_unwind
             at src\libstd/panicking.rs:388
  12: std::panicking::begin_panic_fmt
             at src\libstd/panicking.rs:342
  13: gcc::fail
             at C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\gcc-0.3.55\src/lib.rs:1672
  14: gcc::Build::compile
             at C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\gcc-0.3.55\src/lib.rs:785
  15: build_script_build::main
             at .\build.rs:38
  16: std::rt::lang_start::{{closure}}
             at C:\Users\ajink\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67
  17: std::rt::lang_start_internal::{{closure}}
             at src\libstd/rt.rs:52
  18: std::panicking::try::do_call
             at src\libstd/panicking.rs:297
  19: std::panicking::try
             at src\libstd/panicking.rs:274
  20: std::panic::catch_unwind
             at src\libstd/panic.rs:394
  21: std::rt::lang_start_internal
             at src\libstd/rt.rs:51
  22: std::rt::lang_start
             at C:\Users\ajink\.rustup\toolchains\stable-x86_64-pc-windows-gnu\lib/rustlib/src/rust\src\libstd/rt.rs:67
  23: main
  24: __tmainCRTStartup
             at C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:339
  25: mainCRTStartup
             at C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:223
  26: units_search
  27: units_search
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

warning: build failed, waiting for other jobs to finish...
     Running `rustc --crate-name hyper C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\hyper-0.10.16\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=55443ea3830a5464 -C extra-filename=-55443ea3830a5464 --out-dir C:\Users\ajink\RustProjects\rust-api\target\debug\deps -L dependency=C:\Users\ajink\RustProjects\rust-api\target\debug\deps --extern base64=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libbase64-f685cdcab71aa458.rmeta --extern httparse=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libhttparse-48973b51c1cebfb4.rmeta --extern language_tags=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liblanguage_tags-186c8ed58a4f4b48.rmeta --extern log=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liblog-96aefd6df4dabfe8.rmeta --extern mime=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libmime-d8f00523ca4154c6.rmeta --extern num_cpus=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libnum_cpus-7bc4d6ad89a5baef.rmeta --extern time=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libtime-ea2c5895aa724ea0.rmeta --extern traitobject=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libtraitobject-df122566f3503266.rmeta --extern typeable=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libtypeable-c739dd09d4993b75.rmeta --extern unicase=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libunicase-6c964a4a50fb2af4.rmeta --extern url=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liburl-1a565b0edf79333d.rmeta --cap-lints allow -L native=C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\winapi-x86_64-pc-windows-gnu-0.4.0\lib`
     Running `rustc --crate-name dotenv C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\dotenv-0.10.1\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=3694ae52cfadc32c -C extra-filename=-3694ae52cfadc32c --out-dir C:\Users\ajink\RustProjects\rust-api\target\debug\deps -L dependency=C:\Users\ajink\RustProjects\rust-api\target\debug\deps --extern derive_error_chain=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\derive_error_chain-8f726731f9a9f15e.dll --extern error_chain=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\liberror_chain-e7179bd5e91a1be9.rmeta --extern regex=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libregex-0a764105f55e3334.rmeta --cap-lints allow`
     Running `rustc --crate-name dotenv C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\dotenv-0.9.0\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -Cembed-bitcode=no -C debuginfo=2 -C metadata=c92934cd01764392 -C extra-filename=-c92934cd01764392 --out-dir C:\Users\ajink\RustProjects\rust-api\target\debug\deps -L dependency=C:\Users\ajink\RustProjects\rust-api\target\debug\deps --extern regex=C:\Users\ajink\RustProjects\rust-api\target\debug\deps\libregex-0a764105f55e3334.rmeta --cap-lints allow`
error[E0659]: `error_chain` is ambiguous (derive helper attribute vs any other name)
  --> C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\dotenv-0.10.1\src\lib.rs:23:40
   |
23 | #[cfg_attr(not(feature = "backtrace"), error_chain(backtrace = "false"))]
   |                                        ^^^^^^^^^^^ ambiguous name
   |
note: `error_chain` could refer to the derive helper attribute defined here
  --> C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\dotenv-0.10.1\src\lib.rs:22:17
   |
22 | #[derive(Debug, error_chain)]
   |                 ^^^^^^^^^^^
note: `error_chain` could also refer to the derive macro imported here
  --> C:\Users\ajink\.cargo\registry\src\github.com-1ecc6299db9ec823\dotenv-0.10.1\src\lib.rs:10:1
   |
10 | #[macro_use]
   | ^^^^^^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0659`.
error: could not find native static library `ssl`, perhaps an -L flag is missing?

error: aborting due to previous error

error: build failed

My windows ENV PATH

[dependencies]
iron = "0.5.1"
router = "0.5.1"
time = "0.1.38"
serde = "1.0.11"
serde_derive = "1.0.11"
serde_json = "1.0.2"
diesel = { version = "0.16.0", features = ["postgres"] }
diesel_codegen = { version = "0.16.0", features = ["postgres"] }
dotenv = "0.9.0"
bcrypt = "0.1"
rand = "0.3"
bodyparser = "0.7.0"
frank_jwt = "2.5.1"

Please advise :slight_smile:

When I updated dependencies. and as well deleted lock file. And when I run cargo build
Now I get this new error:

error: could not find native static library `ssl`, perhaps an -L flag is missing?

error: aborting due to previous error

error: could not compile `openssl-sys`.
[dependencies]
iron = "0.6.1"
router = "0.6.0"
time = "0.2.16"
serde = "1.0.114"
serde_derive = "1.0.114"
serde_json = "1.0.57"
diesel = { version = "1.4.5", features = ["postgres"] }
diesel_codegen = { version = "0.16.1", features = ["postgres"] }
dotenv = "0.15.0"
bcrypt = "0.8.1"
rand = "0.7.3"
bodyparser = "0.8.0"
frank_jwt = "3.1.2"

rust-crypto is a dead, unmaintained crate.

Use cargo tree to see what is trying to use it, and get rid of that dependency.

just ran cargo update now I get new error: error: could not find native static library ssl, perhaps an -L flag is missing?

i gaveup on this guys. installed Popos alongside windows 10 now. works fine

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.