à l'aide de libcurl sans dll
Je suis l'aide de Microsoft Visual C++ 2010, et j'ai besoin de faire une application qui ne nécessite pas la libcurl dll. Je suis la définition de CURL_STATICLIB dans les directives de préprocesseur et en les reliant à libcurl.lib, libcurl_static.lib, ws2_32.lib, et winmm.lib, mais il a encore besoin de la dll pour fonctionner. Si j'ai seulement un lien vers libcurl_static.lib, il a pas défini symbole externe des erreurs. Comment puis-je le faire fonctionner?
J'ai aussi essayé de la création de la source, mais je reçois 13 erreurs (wow, nombre malchanceux) qui disent tous "erreur C2011: 'pollfd' : 'struct' type de redéfinition". Quelqu'un pourrait-il m'aider à obtenir libcurl de travail?
OriginalL'auteur Iron | 2010-08-05
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de réponse simple 🙂
Libcurl dépend d'autres tiers libs (cela dépend de la distribution binaire que vous utilisez). Comme vous vous débarrasser de DLL - vous devez associer avec des tiers correspondants manuellement.
Ok, donc le premier point est que vous ne devriez pas le lien pour libcurl.lib comme il vous lie à la DLL qui vous ne voulez pas.
Deuxième point lorsque vous créez un lien avec libcurl_static.lib ensuite (comme mentionné ci-dessus), vous aurez également un lien avec les bibliothèques dont il dépend. Façon Simple de le faire est de faire quelque chose comme ceci:
Mais de cette façon, vous aurez plus de trois dépendances. Alternativement, vous pouvez rechercher un moyen d'établir un lien avec eux de manière statique, mais c'est une autre histoire.
Comme une autre alternative - vous pu reconstruire libcurl_static.lib à partir de sources après la désactivation de toutes les fonctions dont vous n'avez pas besoin donc de supprimer les dépendances (comme décrit dans "la Désactivation des Protocoles Spécifiques de Win32 construit" du fichier d'INSTALLATION).
Et dernier point libcurl est assez pauvre en charge de windows compilation à partir des sources, je vous recommande de revoir l'idée de se débarrasser de curllib.dll.
OriginalL'auteur Andrey
J'ai eu une version statique de libcurl pour compiler et lier en spécifiant à la fois HTTP_ONLY et CURL_STATICLIB dans les directives de préprocesseur de la libcurl projet et à ma demande. Ceci élimine toutes les dépendances requises par les protocoles il est probable que vous n'avez pas besoin. L'application fonctionne sans nécessiter aucune Dll.
À côté de la ci-dessus, j'ai juste besoin de assurez-vous libcurl.lib et le chemin d'accès à la boucle inclure les fichiers ont été définies dans l'application de paramètres de projet visual studio.
Les références que j'ai utilisé:
La désactivation des Protocoles Spécifiques de Win32: les versions
http://curl.haxx.se/mail/lib-2011-12/0123.html
À l'aide de libcurl dans Visual Studio (périmé):
http://curl.haxx.se/libcurl/c/visual_studio.pdf
OriginalL'auteur humbads