ryzom_client_patcher does not compile: missing function in curl.lib

Added by cjlpa about 3 years ago

Hello,
I am trying to compile Ryzom on Windows (Win7, VS Premium 2010) and receive the following errors: (sorry for German)
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_RAND_file_name" in Funktion "_ossl_seed". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(ssluse.obj) ryzom_client_patcher
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_RAND_load_file" in Funktion "_ossl_seed". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(ssluse.obj) ryzom_client_patcher
Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_RAND_status" in Funktion "_rand_enough". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(ssluse.obj) ryzom_client_patcher
Fehler 4 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_RAND_screen" in Funktion "_Curl_ossl_init". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(ssluse.obj) ryzom_client_patcher
Fehler 5 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_OPENSSL_add_all_algorithms_noconf" in Funktion "_Curl_ossl_init". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(ssluse.obj) ryzom_client_patcher

[....]

Fehler 109 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_MD4_Update" in Funktion "_mk_nt_hash". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(http_ntlm.obj) ryzom_client_patcher
Fehler 110 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_MD4_Init" in Funktion "_mk_nt_hash". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\curl.lib(http_ntlm.obj) ryzom_client_patcher
Fehler 111 error LNK1120: 107 nicht aufgelöste externe Verweise. C:\...\Ryzom\code\build2\bin\RelWithDebInfo\ryzom_client_patcher.exe ryzom_client_patcher

They all pertain to curl.lib.

Cmake (2.8.8) doesn't report any problems, and I have tried linking to lib64's version of curl.lib instead - this just gives 8 errors instead of 111:

Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_curl_global_cleanup" in Funktion ""private: void __thiscall CPatchManager::downloadFileWithCurl(class stlpx_std::basic_string<char,class stlpx_std::char_traits<char>,class stlpx_std::allocator<char> > const &,class stlpx_std::basic_string<char,class stlpx_std::char_traits<char>,class stlpx_std::allocator<char> > const &,class NLMISC::IProgressCallback *)" (?downloadFileWithCurl@CPatchManager@AAEXABV?$basic_string@DV?$char_traits@D@stlpx_std@V?$allocator@D@2@stlpx_std@0PAVIProgressCallback@NLMISC@@@Z)". C:\...\Ryzom\code\build2\ryzom\tools\client\client_patcher\login_patch.obj ryzom_client_patcher

and 7 more alike the one above.

The build configuration I use is RelWithDebInfo.

Any help would be appreciated! :-)
Thank you,
F.


Replies (7)

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by kervala about 3 years ago

First, that's strange you have a RelWithDebInfo build configuration :( We only kept Release and Debug, I just checked on my VC++ 2010 and I don't see RelWithDebInfo. I suggest you to use Release or Debug because we declared VC++ flags only for these configurations.

Next, I suspect OpenSSL wasn't found by CMake. Please could you check in build/CMakeCache.txt if OpenSSL has been found ?

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by cjlpa about 3 years ago

Hello,

wow, thank you for this fast reply!

I will try with Release.

Cheers,
F.

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by cjlpa about 3 years ago

Hello again,

same error with Release and Debug build target.

CMakeCache.txt:

//Path to a file.
OPENSSL_INCLUDE_DIR:PATH=C:/.../Ryzom/external_stlport/include

//Details about finding OpenSSL
FIND_PACKAGE_MESSAGE_DETAILS_OpenSSL:INTERNAL=[optimized;C:/.../Ryzom/external_stlport/lib64/ssleay32.lib;debug;C:/.../Ryzom/external_stlport/lib64/ssleay32.lib;optimized;C:/.../Ryzom/external_stlport/lib64/libeay32.lib;debug;C:/.../Ryzom/external_stlport/lib64/libeay32.lib][C:/.../Ryzom/external_stlport/include][v1..()]

//ADVANCED property for variable: OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR-ADVANCED:INTERNAL=1

The errors are not only with SSLuse, but also with http_ntlm and MD5.

Regards,
F.

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by kervala about 3 years ago

Please what CMake version are you using ?

Some previous versions had bugs with OpenSSL module.

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by cjlpa about 3 years ago

cmake-gui about box says:

"CMake 2.8.8
Using Qt 4.6.2"

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by cjlpa about 3 years ago

I may have found a solution: I downloaded the libcurlMD.lib and DLL from the cURLpp Project: http://code.google.com/p/curlpp/downloads/detail?name=libcurlMD.zip&can=2&q=
And put both files in the external_stlport dir, then changed the include in ryzom_client_patcher to reference the lib file instead of curl.lib. At least for now, it compiles - still have to test though if there are any problems / unforseeen bugs or errors.

RE: ryzom_client_patcher does not compile: missing function in curl.lib - Added by cjlpa about 3 years ago

For anyone running into the same problem: using the solution above (cURLpp libraries) worked perfectly!

(1-7/7)