c - Kan ikke krydse kompilere (windows) et program, der forbinder ssl bibliotek

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et C-program, der forbinder ssl-biblioteket (md5.h):


#if defined(\_\_APPLE\_\_)
#  define COMMON\_DIGEST\_FOR\_OPENSSL
#  include <CommonCrypto/CommonDigest.h>
#  define SHA1 CC\_SHA1
#else
#  include <openssl/md5.h>
#endif


alting fungerer fint på Linux og Mac Os X, der kompilerer med denne kommandolinje:


gcc program.c -o prog -lssl


Nu vil jeg kompilere det til Windows, så jeg har installeret MinGw på min Debian, og jeg forsøger at krydse kompilere med denne kommandolinje:


i586-mingw32msvc-gcc program.c -o program.exe -lssl


men jeg får denne kompileringsfejl:



  Fejl: openssl/md5.h: Ingen sådan fil eller mappe



Hvorfor? Hvordan kan jeg løse dette problem?

Bedste reference


Du har brug for OpenSSL bygget til Windows, hvor kompilatoren kan finde den.
Den nemmeste måde er at bygge fra kilde og installere i et præfiks, kan mingw-kompilatoren finde den (eller videregive indlæsnings- og biblioteksstierne til dit byggesystem).


OpenSSL er en tredjeparts lib, så det er ikke en del af mingw-pakken.

Andre referencer 1


Tjek alle stier i makefile.m32 filer, der skal være noget galt med dem.


Og AFAIR du skal kompilere det ikke i cmd, men i mingw-cmd, der installeres sammen med mingw-pakken.