Log in

View Full Version : Compile Problem on 2008 Express


thepoetwarrior
04-01-2012, 11:54 AM
Created a Windows 7 32-bit VM for a test server test edits without having to reboot live server.

After compiling source, I'm getting 4 succeeded 2 failed.

Used Visual C++ 2008 Express on Windows 7 32-bit, Perl 5.1 version 1007 (same version on guide), and MySQL 5.1.62 (different version from guide). The include and library are set up properly.

The 4 files succeed obviously are zone.exe, world.exe, eqlaunch.exe, and EMuShareMem.dll.

I think what failed might have been chatserver.exe and some other file, but I already have a back up of a working chatserver.exe file compiled from before.

Used the guide from here "COMPLETE PUBLIC SERVER SETUP - Jan-2011":
http://www.eqemulator.org/forums/showthread.php?t=32980

Why are there 2 failed to compile?

Here is the output:

Output Window

Compiling...
ucsconfig.cpp
ucs.cpp
clientlist.cpp
.\clientlist.cpp(1012) : warning C4018: '<' : signed/unsigned mismatch
.\clientlist.cpp(1314) : warning C4018: '<' : signed/unsigned mismatch
.\clientlist.cpp(1317) : warning C4018: '<' : signed/unsigned mismatch
.\clientlist.cpp(1427) : warning C4018: '<' : signed/unsigned mismatch
.\clientlist.cpp(1430) : warning C4018: '<' : signed/unsigned mismatch
chatchannel.cpp
Linking...
chatchannel.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::SetChannelOwner(class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >)" (?SetChannelOwner@Database@@QAEXV?$basic_string@DU ?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z)
chatchannel.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::SetChannelPassword(class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >)" (?SetChannelPassword@Database@@QAEXV?$basic_string @DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z )
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::GetFriendsAndIgnore(int,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > &,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > &)" (?GetFriendsAndIgnore@Database@@QAEXHAAV?$vector@V ?$basic_string@DU?$char_traits@D@std@@V?$allocator @D@2@@std@@V?$allocator@V?$basic_string@DU?$char_t raits@D@std@@V?$allocator@D@2@@std@@@2@@std@@0@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::RemoveFriendOrIgnore(int,int,class std::basic_string,class std::allocator >)" (?RemoveFriendOrIgnore@Database@@QAEXHHV?$basic_st ring@DU?$char_traits@D@std@@V?$allocator@D@2@@std@ @@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::AddFriendOrIgnore(int,int,class std::basic_string,class std::allocator >)" (?AddFriendOrIgnore@Database@@QAEXHHV?$basic_strin g@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z )
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::SetMessageStatus(int,int)" (?SetMessageStatus@Database@@QAEXHH@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: bool __thiscall Database::SendMail(class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >,class std::basic_string,class std::allocator >)" (?SendMail@Database@@QAE_NV?$basic_string@DU?$char _traits@D@std@@V?$allocator@D@2@@std@@0000@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::SendBody(class Client *,int)" (?SendBody@Database@@QAEXPAVClient@@H@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::SendHeaders(class Client *)" (?SendHeaders@Database@@QAEXPAVClient@@@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::GetAccountStatus(class Client *)" (?GetAccountStatus@Database@@QAEXPAVClient@@@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: bool __thiscall Database::VerifyMailKey(class std::basic_string,class std::allocator >,int,class std::basic_string,class std::allocator >)" (?VerifyMailKey@Database@@QAE_NV?$basic_string@DU? $char_traits@D@std@@V?$allocator@D@2@@std@@H0@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: int __thiscall Database::FindCharacter(char const *)" (?FindCharacter@Database@@QAEHPBD@Z)
clientlist.obj : error LNK2001: unresolved external symbol "public: int __thiscall Database::FindAccount(char const *,class Client *)" (?FindAccount@Database@@QAEHPBDPAVClient@@@Z)
ucs.obj : error LNK2001: unresolved external symbol "public: void __thiscall Database::ExpireMail(void)" (?ExpireMail@Database@@QAEXXZ)
ucs.obj : error LNK2001: unresolved external symbol "public: bool __thiscall Database::LoadChatChannels(void)" (?LoadChatChannels@Database@@QAE_NXZ)
worldserver.obj : error LNK2001: unresolved external symbol "class queryservconfig const * const Config" (?Config@@3PBVqueryservconfig@@B)
.\../Build/Chatserver.exe : fatal error LNK1120: 16 unresolved externals

Results


Build log was saved at "file://c:\Source\EQEmuServer\Build\ucs\Release\BuildLog.h tm"
ucs - 17 error(s), 5 warning(s)

thepoetwarrior
04-01-2012, 12:01 PM
In case the info is needed for line numbers, the revision is current - 2111

sorvani
04-02-2012, 02:52 AM
i just did a new 32 bit build to check this out.

#1 uncheck the queryserver from being built it does not build in the VS2008 32-bit design
#2 don't use zlib you can download, use the zlib in the SVN. change your include and lib references appropriately.
#3 assuming you meant perl 5.10. I had issues using 5.10 so i changed to 5.12 and updated the two lines of code that reference 5.10 to reference 5.12

My server builds and runs perfectly. 5 succeeded 1 skipped (queryserver)


I would add that I actually build my server on a Windows 7 Parallels VM on my Macbook Pro, using VS2008 Pro. I run my server on an old Vaio laptop.

thepoetwarrior
04-02-2012, 01:09 PM
Thanks very much for the information! That is what I was looking for :)

Secrets
04-02-2012, 10:27 PM
I'll look into disabling queryserv from the compile for the time being because it's not used (yet)

Though expect it to be used soon for extra processing capabilities.

sorvani
04-03-2012, 10:04 AM
Secrets,
When i tinkered with a 64-bit build, queryserv built just fine with VS2010 Pro.

Irreverent
04-18-2012, 09:09 AM
I just tried this on x86, 2010, 5.14 and got an error trying to link chatserver.exe

I just put a dependancy on the queryserver to wait for ucs and it worked fine.

sorvani
04-18-2012, 04:11 PM
since i originally posted to uncheck queryserv, that solution has been fixed and now build correctly.