2011-02-07 12 views
3

(je repéré une question similaire à cela, mais il avait 2 ans.)ld.exe ne peut pas trouver -lcurl

Je développe un formulaire d'application Windows dans Visual C++ 2008, qui utilise la fonction FTP libCurl. Bien que j'aie ajouté les répertoires lib et include aux chemins de recherche d'inclusion et de bibliothèque, ajouté libcurl_imp.lib à Additional Dependencies et ajouté CURL_STATICLIB aux définitions de Preproccessor, j'obtiens 14 erreurs de liens lorsque je le construis. J'ai vérifié la FAQ de cURL et Google'd certaines des erreurs, mais je n'ai pas encore trouvé une solution. Les erreurs de l'éditeur de liens sont les suivantes: (. J'occulté le nom du projet)

1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" void __clrcall curl_easy_cleanup(void *)" ([email protected]@[email protected]); calling convention missing in metadata 
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" ([email protected]@[email protected]@[email protected]); calling convention missing in metadata 
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" ([email protected]@[email protected]@[email protected]@ZZ); calling convention missing in metadata 
1>-------.obj : error LNK2031: unable to generate p/invoke for "extern "C" void * __clrcall curl_easy_init(void)" ([email protected]@$$J0YMPAXXZ); calling convention missing in metadata 
1>-------.obj : error LNK2028: unresolved token (0A00000E) "extern "C" void __clrcall curl_easy_cleanup(void *)" ([email protected]@[email protected]) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 
1>-------.obj : error LNK2028: unresolved token (0A00000F) "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" ([email protected]@[email protected]@[email protected]) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 
1>-------.obj : error LNK2020: unresolved token (0A000010) "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" ([email protected]@[email protected]@[email protected]@ZZ) 
1>-------.obj : error LNK2020: unresolved token (0A000011) "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" ([email protected]@[email protected]@[email protected]@ZZ) 
1>-------.obj : error LNK2028: unresolved token (0A000012) "extern "C" void * __clrcall curl_easy_init(void)" ([email protected]@$$J0YMPAXXZ) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" void __clrcall curl_easy_cleanup(void *)" ([email protected]@[email protected]) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" enum CURLcode __clrcall curl_easy_perform(void *)" ([email protected]@[email protected]@[email protected]) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 
1>-------.obj : error LNK2001: unresolved external symbol "extern "C" enum CURLcode __clrcall curl_easy_setopt(void *,enum CURLoption,...)" ([email protected]@[email protected]@[email protected]@ZZ) 
1>-------.obj : error LNK2019: unresolved external symbol "extern "C" void * __clrcall curl_easy_init(void)" ([email protected]@$$J0YMPAXXZ) referenced in function "int __clrcall main(cli::array<class System::String^>^)" ([email protected]@[email protected]@@@Z) 

Qu'est-ce qui cause cela, comment puis-je l'empêcher? Merci :)


MISE À JOUR

Je suis passé au Code :: Blocks et maintenant son interface graphique Win32 native App. Je ne comprends pas toutes ces erreurs de l'éditeur de liens, mais je reçois quelque chose:

ld.exe cannot find -lcurl.lib 

Au lieu d'ajouter include et lib aux répertoires de recherche, je les ai juste mis dans mon répertoire de projet. Je suis confus par cette erreur parce que le nom de la lib est libcurl.lib, et pas curl.lib. Des idées sur ce qui s'est passé?

EDIT: désolé pour toutes les modifications, je voulais juste mentionner que j'ai ajouté libcurl.lib aux bibliothèques de liens.


MISE À JOUR

Maintenant, j'ai ajouté -lcurl à l'Autre zone Options lien, l'erreur a changé à

ld.exe cannot find -lcurl 

sans la partie .lib.

Répondre

0

Assurez-vous que les bibliothèques se trouvent dans le chemin de recherche de la bibliothèque du compilateur et que la bibliothèque est compilée pour la même architecture que votre exécutable (32 à 64 bits, simple ou multi-thread).

+0

Le seul fichier lib est libcurl.lib et se trouve dans le dossier des projets. L'ajout du dossier de projet aux chemins de recherche de l'éditeur de liens n'a rien fait. C'est vraiment 32 bits, je ne suis pas sûr de la partie unique et multi-thread. –

Questions connexes