Pourquoi openssl / ssl.h ne contient-il qu’un chemin relatif?

J’ai construit OpenSSL à l’aide du compilateur MSVC ++ 2013 Express en procédant comme suit:

Cela s’est terminé sans erreur (les DLL appropriées sont générées). Cependant, quelque chose de très étrange est arrivé. Si j’ouvre openssl/ssl.h , le contenu du fichier est le suivant:

 ../../ssl/ssl.h 

Étant donné que ce n’est évidemment pas valide C / C ++, je ne peux pas comstackr les applications qui dépendent des en-têtes OpenSSL en raison du problème ci-dessus. Qu’est ce que j’ai mal fait?

le commentaire de duskwuff était en effet correct. Le problème était que 7-Zip n’extrayait pas correctement les liens symboliques dans les archives. La solution consistait à télécharger l’ utilitaire de ligne de commande tar de GnuWin32 et à l’utiliser pour extraire l’archive:

  tar -xvf openssl-1.0.1e.tar.gz 

Ce n’est pas le cas uniquement de openssl/ssl.h C’est le cas de presque tous les fichiers que j’ai vus.

J’imagine que ces informations sont utilisées lors de la construction de OpenSSL pour générer les fichiers include dans le dossier include que vous avez mentionné dans les makefiles (pour Windows, il s’agit de nt.mak ou ntdll.mak).

Si vous générez ou construisez la bibliothèque, vous verrez dans le journal que les fichiers d’en-tête sont copiés dans un dossier mentionné dans le fichier makefile. Vous y trouverez les fichiers d’en-tête qui ressemblent à des fichiers d’en-tête C valides. Vous utilisez réellement ces fichiers d’en-tête générés, pas ces fichiers d’en-tête.

Cela ressemble à un modèle pour générer des fichiers d’en-tête.