Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build for x86_64-pc-windows-msvc or x86_64-pc-windows-gnu #585

Open
tobiemh opened this issue Aug 11, 2022 · 0 comments
Open

Unable to build for x86_64-pc-windows-msvc or x86_64-pc-windows-gnu #585

tobiemh opened this issue Aug 11, 2022 · 0 comments

Comments

@tobiemh
Copy link

tobiemh commented Aug 11, 2022

Describe the bug
Hi, I'm trying to build a library which uses tikv/client-rust (which uses grpcio). I am using the master version of tikv-client which uses grpcio-sys 0.10.3+1.44.0-patched. I have attempted to build the library in a number of different ways:

  1. Build on macOS with x86_64-pc-windows-gnu as the target.
  2. Build on Github Actions (windows-latest) with the target x86_64-pc-windows-gnu.
  3. Build on Github Actions (windows-latest) with the target x86_64-pc-windows-msvc.

The tooling versions on macOS are:

brew install cmake mingw-w64
go version go1.19 darwin/arm64
cargo 1.62.1 (a748cf5a3 2022-06-08)
rustc 1.62.1 (e092d0b6b 2022-07-16)
cmake version 3.24.0
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
perl v5.30.3 built for darwin-thread-multi-2level

The tooling versions on Windows Github Actions are

go version go1.17.13 windows/amd64
cargo 1.62.1 (a748cf5a3 2022-06-08)
rustc 1.62.1 (e092d0b6b 2022-07-16)
cmake version 3.24.0
gcc.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 11.2.0
g++.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 11.2.0
perl v5.32.1 built for x86_64-msys-thread-multi

To Reproduce


When running the build on macOS I receive the following error:

error: couldn't read /Users/tobie/Repositories/surrealdb/target/x86_64-pc-windows-gnu/release/build/grpcio-sys-89eb569412f5ce5d/out/grpc-bindings.rs: No such file or directory (os error 2)
 --> /Users/tobie/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/src/lib.rs:8:5
  |
8 |     include!(env!("BINDING_PATH"));
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `grpcio-sys` due to previous error

When running the build on Windows (for target x86_64-pc-windows-gnu) it errors with:

././grpc/include\grpc\impl\codegen\port_platform.h:68:10: fatal error: 'windows.h' file not found
././grpc/include\grpc\impl\codegen\port_platform.h:68:10: fatal error: 'windows.h' file not found, err: true
thread 'bindgen_grpc' panicked at 'Unable to generate grpc bindings: ()', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\grpcio-sys-0.10.3+1.44.0-patched\build.rs:440:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any { .. }', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\grpcio-sys-0.10.3+1.44.0-patched\build.rs:484:14

The full build can be seen here: https://github.com/surrealdb/build/runs/7785309154


When running the build on Windows (for target x86_64-pc-windows-msvc) it errors with:

Error: could not find native static library `ssl`, perhaps an -L flag is missing?
error: could not compile `grpcio-sys` due to previous error

I have also attempted to install openssl headers with:

vcpkg integrate install
vcpkg install openssl:x64-windows-static
VCPKGRS_DYNAMIC: 1
LIBCLANG_PATH: 'C:\Program Files\LLVM\bin'
OPENSSL_DIR: C:\vcpkg\installed\x64-windows-static
OPENSSL_LIB_DIR: C:\vcpkg\installed\x64-windows-static\lib
OPENSSL_INCLUDE_DIR: C:\vcpkg\installed\x64-windows-static\include

The full build can be seen here: https://github.com/surrealdb/build/runs/7785309293


Expected behavior
Expected the package grpcio-sys to build successfully.

Are there any instructions or guides to getting grpcio and grpcio-sys to build for the Windows target?

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant