Errors while trying to compile
I've got the libraries/libs from the wiki, visual c++ 2005 express, Platform SDK w/ the proper changes and i'm trying to compile the source just to see if i can get it working and i'm getting the following error, any help would be much appreciated.
Live.cpp Generating Code... Compiling manifest to resources... Linking... mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_free referenced in function _mysql_ssl_free mysqlclient.lib(viosslfactories.obj) : error LNK2001: unresolved external symbol _yaSSL_CTX_free mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaSSL_get_cipher_name referenced in function _mysql_get_ssl_cipher@4 mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaX509_free referenced in function _ssl_verify_server_cert mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaX509_NAME_oneline referenced in function _ssl_verify_server_cert mysqlclient.lib(viosslfactories.obj) : error LNK2001: unresolved external symbol _yaX509_NAME_oneline mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaX509_get_subject_name referenced in function _ssl_verify_server_cert mysqlclient.lib(viosslfactories.obj) : error LNK2001: unresolved external symbol _yaX509_get_subject_name mysqlclient.lib(client.obj) : error LNK2019: unresolved external symbol _yaSSL_get_peer_certificate referenced in function _ssl_verify_server_cert mysqlclient.lib(vio.obj) : error LNK2019: unresolved external symbol _yayaSSL_CleanUp referenced in function _vio_end mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaERR_get_error_line_data referenced in function _report_errors mysqlclient.lib(viosslfactories.obj) : error LNK2001: unresolved external symbol _yaERR_get_error_line_data mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_read referenced in function _vio_ssl_read mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_write referenced in function _vio_ssl_write mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_shutdown referenced in function _vio_ssl_close mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_free referenced in function _vio_ssl_delete mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_accept referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_set_fd referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_SESSION_set_timeout referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_get_session referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_clear referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_new referenced in function _sslaccept mysqlclient.lib(viossl.obj) : error LNK2019: unresolved external symbol _yaSSL_connect referenced in function _sslconnect mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaDH_free referenced in function _get_dh512 mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaBN_bin2bn referenced in function _get_dh512 mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaDH_new referenced in function _get_dh512 mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_check_private_key referenced in function _vio_set_cert_stuff mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_use_PrivateKey_file referenced in function _vio_set_cert_stuff mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_use_certificate_file referenced in function _vio_set_cert_stuff mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaX509_get_issuer_name referenced in function _vio_verify_callback mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaX509_STORE_CTX_get_error_depth referenced in function _vio_verify_callback mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaX509_STORE_CTX_get_error referenced in function _vio_verify_callback mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaX509_STORE_CTX_get_current_cert referenced in function _vio_verify_callback mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_load_error_strings referenced in function _check_ssl_init mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaOpenSSL_add_all_algorithms referenced in function _check_ssl_init mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_library_init referenced in function _check_ssl_init mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_set_tmp_dh referenced in function _new_VioSSLFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_set_default_verify_paths referenced in function _new_VioSSLFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_load_verify_locations referenced in function _new_VioSSLFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_set_cipher_list referenced in function _new_VioSSLFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_new referenced in function _new_VioSSLFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_set_verify referenced in function _new_VioSSLConnectorFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaTLSv1_client_method referenced in function _new_VioSSLConnectorFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_set_session_id_context referenced in function _new_VioSSLAcceptorFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaSSL_CTX_sess_set_cache_size referenced in function _new_VioSSLAcceptorFd mysqlclient.lib(viosslfactories.obj) : error LNK2019: unresolved external symbol _yaTLSv1_server_method referenced in function _new_VioSSLAcceptorFd ../build/ZoneDebug.exe : fatal error LNK1120: 42 unresolved externals Creating browse information file... Microsoft Browse Information Maintenance Utility Version 8.00.50727 Copyright (C) Microsoft Corporation. All rights reserved. |
Hrmm, also can anyone who compiles tell me what libraries and contribs you have linked to your project? I get the feeling the wiki is just out dated and that's my problem. Thanks.
|
I think i got this error when i tried to compile against a 5.x mysql lib. You should try using the 4.1.x version.
|
When you download mysql from dev.mysql.com there are 3 versions of the download available; essentials, zip with installer, zip without installer. Do not download essentials because that is just the binary of the server and you will need the source code if you plan to compile the emu. The windows versions, unlike the linux versions, do not have a separate devel download, so to get the include directories and libraries you must download the full version. Then simply move the include and library directories to your designated library area. Make sure you setup your IDE to look for the includes and libraries in the location you put them.
I use: Code:
c:\dev |
I'm using 5.0, is that really the prob? I'd think a later version would be better... I 'll give it a try though.
Yeah I figured that out the hard way yesterday Darkonig, I actually had that error and figured out i didn't have those directories... I'm amazed i've gotten this far tbh... lol, i'll try the lower version, i really can't think what else it could be i've done everything according to the wiki. |
4.1 didn't work. Any other ideas?
|
i wasn't saying use lower version. I'm using mysql 5.0.41 with no problems. Just make sure you have everything configured correctly not counting the emu project. IE. make sure all of your required includes and libraries (zlib, mysql, perl) are in appropriate places, that you have the include path and library path in the compiler set to those places, and that you don't have any conflicting paths that would select a different version.
Getting visual studio 2005 setup correctly was the biggest challenge in compiling the emu. There is a good guide to getting it setup correctly in the wiki. The only thing it does not cover is getting your hands on the mysql includes and libraries which is what i was describing above. When i said 3 versions of the download are available, I meant 3 versions of 5.0.41, one is 27mb and only include binarys, the other two are around 57mb and include source. These 3 versions of the download are available regardless of which version of the database you select. It is confusing use of the word version but that's what they call it on the site so. |
Yeah i've checked and re-checked and rerechecked :P Followed the wiki to get to this point. Only thing i can think is the wiki is missing some paths or something.
|
Reading closer though your error list above, that is a link error rather than a compile error. This would suggest that the path to the includes and libraries are not pointing to the same version. When you download the package mentioned above make sure your include path and your library path in the compiler both point to the items from that download and that you remove any conflicting paths that you may have already configured.
|
Ok, the configuration changes I made to compile the emu were:
Include files: c:\perl\lib\CORE c:\dev\zlib123-dll\include c:\dev\mysql\include Library files: c:\perl\lib\CORE c:\dev\zlib123-dll\lib c:\dev\mysql\lib\opt |
Yeah just checked again, all good. Even tried being case sensitive.
Okay let me make sure i'm building it correctly. I go: File-->Open-->Project/solution--> Open zone folder, open the figure 8-looking zone file. Build-->Build Zone and then it prints out the error... |
I'm also getting a bunch of errors like this before that one while building if you can make any sense of it.
EQEMuError.cpp ..\common\EQEMuError.cpp(93) : warning C4996: 'strcpy' was declared deprecated C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(73) : see declaration of 'strcpy' Message: 'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.' ..\common\EQEMuError.cpp(134) : warning C4996: 'getch' was declared deprecated C:\Program Files\Microsoft Visual Studio 8\VC\include\conio.h(145) : see declaration of 'getch' Message: 'The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.' |
Also, it shows this in the error log thing:
".\AA.cpp" ] Creating command line "cl.exe @"c:\Documents and Settings\Slowdex\Desktop\EQEmu-0.7.0-992\Build\Zone\Debug\RSP00000523923948.rsp" /nologo /errorReport:prompt" Creating temporary file "c:\Documents and Settings\Slowdex\Desktop\EQEmu-0.7.0-992\Build\Zone\Debug\TMP00000623923948.tmp" with contents [ 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\Build\\Zone\\Debug\\ZoneDebug.exe.embed.manif est" ] Creating command line "rc.exe /fo"..\Build\Zone\Debug\ZoneDebug.exe.embed.manifes t.res" "c:\Documents and Settings\Slowdex\Desktop\EQEmu-0.7.0-992\Build\Zone\Debug\TMP00000623923948.tmp"" Creating temporary file "c:\Documents and Settings\Slowdex\Desktop\EQEmu-0.7.0-992\Build\Zone\Debug\RSP00000723923948.rsp" with contents [ /OUT:"../build/ZoneDebug.exe" /INCREMENTAL /LIBPATH:"c:\mysql\lib\opt" /LIBPATH:"c:\eqemu\lib" /MANIFEST /MANIFESTFILE:".\../Build/Zone/Debug\ZoneDebug.exe.intermediate.manifest" /NODEFAULTLIB:"LIBCMT" /NODEFAULTLIB:"LIBC" /DEBUG /PDB:".\../build/ZoneDebug.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 odbc32.lib odbccp32.lib wsock32.lib zlib.lib mysqlclient.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /OUT:"../build/ZoneDebug.exe" /INCREMENTAL /LIBPATH:"c:\mysql\lib\opt" /LIBPATH:"c:\eqemu\lib" Where is it getting c:\eqemu\lib? There is no lib folder in eqemu... I didn't set that path. |
When I do the build, i would go into EQEmu-0.7.0-992 and open the server.sln file in there as the solution. It contains subprojects of emusharemem, world, and zone. This will build all 3 projects. There are dependencies between them.
|
Well eqemumemshare is successful like that however the other 2 fail.
|
All times are GMT -4. The time now is 09:41 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.