Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 02-02-2020, 02:52 PM
laxative
Hill Giant
 
Join Date: Aug 2008
Location: NorthEast
Posts: 115
Default compile error unresolved externals

Greetings

Thought I'd pick up the project again for a little while.
Did the ground up approach because there are some code changes I like to have active.

Im stuck on compiling, I get 17 to go, 6 fail. They fail with externals in common.lib.. not sure what's going on.

Completely new data pull using the ground up server install (which now has no reference to zlib.. which may be what I'm missing?)
VS2019, MYSQL, PERL, Dependencies etc... Cmake runs great no errors.

compile fails here:

Code:
1>------ Build started: Project: queryserv, Configuration: RelWithDebInfo x64 ------
1>common.lib(servertalk_client_connection.obj) : error LNK2019: unresolved external symbol __imp_crypto_box_keypair referenced in function "private: void __cdecl EQ::Net::ServertalkClient::SendHandshake(bool)" (?SendHandshake@ServertalkClient@Net@EQ@@AEAAX_N@Z)
1>common.lib(servertalk_client_connection.obj) : error LNK2019: unresolved external symbol __imp_crypto_box_beforenm referenced in function "private: void __cdecl EQ::Net::ServertalkClient::SendHandshake(bool)" (?SendHandshake@ServertalkClient@Net@EQ@@AEAAX_N@Z)
1>common.lib(servertalk_client_connection.obj) : error LNK2019: unresolved external symbol __imp_crypto_box_easy_afternm referenced in function "public: void __cdecl EQ::Net::ServertalkClient::Send(unsigned short,class EQ::Net::Packet &)" (?Send@ServertalkClient@Net@EQ@@QEAAXGAEAVPacket@23@@Z)
1>common.lib(servertalk_client_connection.obj) : error LNK2019: unresolved external symbol __imp_crypto_box_open_easy_afternm referenced in function "private: void __cdecl EQ::Net::ServertalkClient::ProcessMessage(class EQ::Net::Packet &)" (?ProcessMessage@ServertalkClient@Net@EQ@@AEAAXAEAVPacket@23@@Z)
1>common.lib(servertalk_client_connection.obj) : error LNK2019: unresolved external symbol
thoughts?
Lax
Reply With Quote
  #2  
Old 02-02-2020, 04:37 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Are you building x64?
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #3  
Old 02-02-2020, 05:58 PM
laxative
Hill Giant
 
Join Date: Aug 2008
Location: NorthEast
Posts: 115
Default

Uleat?? I'm honored to get your attention!

I thought it might have been a 32/64 issue, I originally had all the x86 dependencies (still do actually) but I grabbed the 64bit dependencies too.

I just completed another go around, fresh cmake files, opened the project, did a clean, updated all the VS include and Lib directories to point to the 64bit dependencies, but still have the same 6 failures but now with many more perl, and lua errors....

I'd prefer to run X86.. but let me ask the simple and dumb question, my perl and MySQL installations are 64 bit.. but lua, zlib, etc are probably all 32 bit.

This is where it has always fallen down for me, which files are the correct ones to download for proper usage.? Does it matter if you've installed SQL workbench that's 64bit.. (maybe??)

Cmake seems very happy, but visual studio is complaining like a mofo.

Code:
Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.
Resolving vcpkg dependencies...
Boost version: 1.71.0
Found mbedTLS:
  version 2.16.3
  TLS: D:/Emu-Files/code/Server/vcpkg/installed/x86-windows/debug/lib/mbedtls.lib
  X509: D:/Emu-Files/code/Server/vcpkg/installed/x86-windows/debug/lib/mbedx509.lib
  Crypto: D:/Emu-Files/code/Server/vcpkg/installed/x86-windows/debug/lib/mbedcrypto.lib
**************************************************
* Library Detection                              *
**************************************************
* MySQL:                                   FOUND *
* MariaDB:                                 FOUND *
* ZLIB:                                    FOUND *
* Lua:                                     FOUND *
* Perl:                                    FOUND *
* libsodium:                               FOUND *
* OpenSSL:                                 FOUND *
* mbedTLS:                                 FOUND *
**************************************************

**************************************************
* Library Usage                                  *
**************************************************
* Database:                                MySQL *
* TLS:                                   OpenSSL *
* Sodium:                              Libsodium *
* Lua:                                   Lua 5.1 *
* Perl:                                     Perl *
* zlib:                                  zlib-ng *
**************************************************
Version: 5.3.0
Build type: RelWithDebInfo
CXX_STANDARD: 11
ZLIB_HEADER_VERSION: 1.2.11
ZLIBNG_HEADER_VERSION: 1.9.9
Architecture: AMD64
Using cmake toolchain: D:/Emu-Files/code/Server/vcpkg/scripts/buildsystems/vcpkg.cmake
Architecture-specific source files: arch/x86/x86.c
Configuring done
Generating done
It's always been a bit of bugger to me to get the repository straight. Which versions etc. do I need to reference the lib/includes from the dependencies folder, or from the program installations (MySQL)

maybe there is a newer guide that I'm not seeing either?

thanks for reading, and cool to see you still here.
Lax
Reply With Quote
  #4  
Old 02-02-2020, 09:07 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Many things have changed for local compiling in the last year.

Even the guide that I updated went out-of-date about 3 weeks after it went live.


Some ppl are pushing for 64-bit compiles..but, I'm still on the 32-bit bandwagon.


If you happen to be on our discord, I can walk you through it faster than can be done here on the fourms.

If not...


I would switch back to 32-bit for perl .. I think lua is self-contained with luajit and the required dll.

This guide is correct up until the vcpkg portion.

Dependencies (aside from perl) are no longer used/required.

Don't worry about downloading vcpkg, cmake will do that for you.

When you get to this part..

..do not change it. Leave it as 'Use default native compilers.'

Also, if you're using a newer version of cmake that has a 3rd drop-down menu (in-between the ones shown above,) make sure that you select win32 for architecture.

Cmake used to default to 32-bit builds..but, it will now default to x64 if that is left empty.


If you follow the guide otherwise, that and the above changes should get you on the right track.


EDIT: for ref: https://eqemu.gitbook.io/server/cate...indows-install
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #5  
Old 02-02-2020, 10:09 PM
laxative
Hill Giant
 
Join Date: Aug 2008
Location: NorthEast
Posts: 115
Smile

Uleat,

I'm going to get on discord tomorrow, doing superbowl.

I'm using discord for my other apps and Like it. I'll try and find you

But...

I think you found out my issue.. I do have the third drop down.. and I have been selecting the cross compile according to the guide.

Ive been fussing with all night, when I change VS to Win32 it cannot even find include files, so I go back to 64 and get weird target vs code etc.. so I'll give the two things you mentioned a try, and Ill see you on discord.

Thanks
Lax
Reply With Quote
  #6  
Old 02-02-2020, 10:29 PM
laxative
Hill Giant
 
Join Date: Aug 2008
Location: NorthEast
Posts: 115
Default

you sir are the man,
Im tipping a scotch to you now.

Code:
3>------ Build started: Project: ALL_BUILD, Configuration: RelWithDebInfo Win32 ------
23>Building Custom Rule D:/Emu-Files/code/Server/CMakeLists.txt
23>CMake does not need to re-run because D:/Emu-Files/code/Server/build/CMakeFiles/generate.stamp is up-to-date.
========== Build: 23 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
The problem was staring me right in the face!! Cmake trying to make sure they are ready for the 64 bit push. now to get the db and loginserver jazz all back to normal.

good night and see ya on discord probably
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 07:31 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3