google-code-export / twitcurl

Automatically exported from code.google.com/p/twitcurl
1 stars 1 forks source link

Linking error with twitcurl.lib/obj #40

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
This is related to another similar issue already posted. If you read the other 
post, the recommended repair was to build from a curl source, and create 
libcurl_imp.lib. I did that and I also added all the twitcurl source files to 
my project. However, I still receive the same error. 

1>twitcurl.obj : error LNK2019: unresolved external symbol __imp_curl_easy_init 
referenced in function "public: __cdecl twitCurl::twitCurl(void)" 
(??0twitCurl@@QEAA@XZ)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_easy_cleanup referenced in function "public: __cdecl 
twitCurl::~twitCurl(void)" (??1twitCurl@@QEAA@XZ)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_easy_setopt referenced in function "private: void __cdecl 
twitCurl::prepareCurlProxy(void)" (?prepareCurlProxy@twitCurl@@AEAAXXZ)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_slist_free_all referenced in function "private: bool __cdecl 
twitCurl::performGet(class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > const &)" 
(?performGet@twitCurl@@AEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$alloca
tor@D@2@@std@@@Z)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_easy_perform referenced in function "private: bool __cdecl 
twitCurl::performGet(class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > const &)" 
(?performGet@twitCurl@@AEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$alloca
tor@D@2@@std@@@Z)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_slist_append referenced in function "private: bool __cdecl 
twitCurl::performGet(class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > const &)" 
(?performGet@twitCurl@@AEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$alloca
tor@D@2@@std@@@Z)
1>twitcurl.obj : error LNK2019: unresolved external symbol 
__imp_curl_easy_getinfo referenced in function "public: bool __cdecl 
twitCurl::oAuthHandlePIN(class std::basic_string<char,struct 
std::char_traits<char>,class std::allocator<char> > const &)" 
(?oAuthHandlePIN@twitCurl@@QEAA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$al
locator@D@2@@std@@@Z)
1>C:\SkeletalBasicsVersions\SkeletonBasics-D2D\x64\Debug\SkeletonBasics-D2D.exe 
: fatal error LNK1120: 7 unresolved externals

I am using Visual Studio 10 Professional. I really need help with this. 
Thanks 

Original issue reported on code.google.com by bie...@student.breckschool.org on 1 Aug 2012 at 4:23

GoogleCodeExporter commented 9 years ago
The most likely problem is that you do not link to the correct libcurl library 
or you haven't compiled the library correctly for Windows.

Try to find a tutorial on the web on how to create a static library for curl 
for Windows and then link your application to it.

The dynamic link library from twitcurl-read-only/libtwitcurl/lib/libcurl.lib 
doesn't work in Windows?

Original comment by alex.bu...@gmail.com on 13 Sep 2012 at 6:40

GoogleCodeExporter commented 9 years ago
This happened to me also. I looked up what's there in libcurl_a.lib ( static 
library version.  The symbol names inside are : curl_easy_setopt, 
curl_easy_perform etc.

But the Visual Studio 2010 error message says __imp__curl...

So, probably they couldn't be found due to the decorated name.

Original comment by jongamp...@gmail.com on 30 Jun 2014 at 5:53

GoogleCodeExporter commented 9 years ago
I solved my case. I used static build of libcurl. Then the decorated names are 
not starting with __imp_. So, using dumpbin, which is from Visual Studio, I 
took a look at symbols in the library. There I could check that the decorated 
name is not like __imp_.
So, by searching one of the troubled function in the curl header file, I 
figured out CURL_STATIC_LIB or something like that should have been used in the 
case of static lib.
Only dll version looks to have those __imp_ prefix.

Original comment by jongamp...@gmail.com on 30 Jun 2014 at 7:37