After getting really frustrated with the state of Rust & TLS, and I decided to sit down and figure out what it would take to make the OpenSSL crate actually build successfully. Even though the crate claims to support vcpkg, it seems that there were issues there. I started from a clean slate, and checked that I have openssl via vcpkg installed:
I then got into a rabbit hole of errors in the build, first:
This seems like it wants to statically link to them by default, but when I set the env variable, I got:
Looking closely at the error (always read the error message), you can see that it is looking for a 64 bits build, but I’ve a x86 build.
That very likely explains the issues that I previously had. I tried to point it to the SSL build directory, and I’m pretty sure that I used the 32bits directory. It rejected the attempted link, but didn’t bother to tell me about it.
To be fair, this isn’t Rust’s fault, it is link.exe’s fault for not providing a clear error about this case. Actually, this is the case where you are going to invest some time writing a feature whose only purpose is to get good errors when the user messed up. But that kind of attention to detail make a world of difference.
Here is what fixed this for me.
And with that, I can build using:
Hurray! That is enough for now, I guess. I’ll get things actually working in another post.