Compile with VS2015

General support forum. If you require assistance and your problem doesnt fall in any of the other categories, this is the forum for you!

Moderator: Team Members

Forum rules
READ THE FORUM STICKY THREADS BEFORE ASKING FOR HELP!
Most information can be found there, and if not, the posts will help you determine the information required to get assistance from the development team.
Incomplete Help Requests will be locked or deleted.
User avatar
Ememjr
Team Member
Posts: 975
Joined: Wed Mar 15, 2017 9:41 am
EQ2Emu Server: Perseverance

Compile with VS2015

Post by Ememjr » Sat Mar 18, 2017 2:13 pm

I am trying to compile the server so i can test some changes i want to make

i get the following errors

Code: Select all

Severity	Code	Description	Project	File	Line	Suppression State
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(typelib.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(viosslfactories.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(my_messnc.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(client.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(my_thr_init.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(my_init.obj)	1	
Error	LNK2001	unresolved external symbol __iob_func	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(default.obj)	1	
Error	LNK2001	unresolved external symbol _dosmaperr	EQ2World	C:\My server\eq2emu\trunk\win\VC10Projects\mysqlclientx64_release.lib(my_open.obj)	1	
any suggestions?

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Compile with VS2015

Post by Jabantiz » Sat Mar 18, 2017 3:29 pm

Server just won't compile with VS2015, latest version it worked with is VS2013.

Those errors are a missing #include or macro in some files, the problem is once you get past those errors you will get a bunch more because some feature was removed in VS2015 and it would require a rewrite of an entire system. At least that was the case last time I tried to get it to work several months back.

User avatar
Ememjr
Team Member
Posts: 975
Joined: Wed Mar 15, 2017 9:41 am
EQ2Emu Server: Perseverance

Re: Compile with VS2015

Post by Ememjr » Sun Mar 19, 2017 6:15 am

thanks installing VS2013 let me compile

User avatar
Gangrenous
Posts: 812
Joined: Sun Apr 24, 2016 6:54 am
Characters: Dinsmoor

Re: Compile with VS2015

Post by Gangrenous » Sun Mar 19, 2017 5:27 pm

Well knock on wood, I have been able to compile in Linux pretty regularly with no issues. It does take a lot of legwork to get to the point of the first compile though :)
Resident Dirty Hippy

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Compile with VS2015

Post by John Adams » Fri Mar 24, 2017 10:31 am

Jabantiz wrote: Sat Mar 18, 2017 3:29 pm Server just won't compile with VS2015, latest version it worked with is VS2013.

Those errors are a missing #include or macro in some files, the problem is once you get past those errors you will get a bunch more because some feature was removed in VS2015 and it would require a rewrite of an entire system. At least that was the case last time I tried to get it to work several months back.
Jab, I have used VS2015 exclusively for some time, and I have no problems compiling EQ2World, as it relates to what you are explaining. I remember this coming up when Scat and I were messing with Old EVEmu code (maybe it was you, too) where there is a define you can put in to fix it, though I think it breaks something else. Either way, the only error I get >today< is oddly, cannot find EXE_NAME, in Log.cpp, which is clearly defined in Log.cpp itself. So that's weird.

Code: Select all

1>  Log.cpp
1>..\..\source\common\Log.cpp(169): error C3688: invalid literal suffix 'EXE_NAME'; literal operator or literal operator template 'operator ""EXE_NAME' not found
1>..\..\source\common\Log.cpp(169): error C2664: 'int _snprintf(char *const ,const std::size_t,const char *const ,...)': cannot convert argument 3 from 'int' to 'const char *const '
1>  ..\..\source\common\Log.cpp(169): note: Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
On these lines:

Code: Select all

#ifdef NO_PIDLOG
	snprintf(file, FILENAME_MAX, LOG_DIR"/%04i-%02i-%02i_eq2"EXE_NAME".log", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
#else
	snprintf(file, FILENAME_MAX, LOG_DIR"/%04i-%02i-%02i_eq2"EXE_NAME"_%04i.log", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, getpid());
#endif

User avatar
Zcoretri
Team Member
Posts: 1642
Joined: Fri Jul 27, 2007 12:55 pm
Location: SoCal

Re: Compile with VS2015

Post by Zcoretri » Wed May 24, 2017 8:34 pm

Well I could not get it to compile with VS2013
47 errors of error C2668: 'to_string' : ambiguous call to overloaded function in Commands.cpp

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Compile with VS2015

Post by Jabantiz » Wed May 24, 2017 9:04 pm

/sigh that was stuff I had to add for Linux, I put it in an #if at the top of commands.cpp and thought I had it working, if you intend to just use windows you can nuke those functions and it should work. Linux without c++11 doesn't have those functions and why I had to add them in.

User avatar
Zcoretri
Team Member
Posts: 1642
Joined: Fri Jul 27, 2007 12:55 pm
Location: SoCal

Re: Compile with VS2015

Post by Zcoretri » Wed May 24, 2017 9:20 pm

I see... :mrgreen:

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Compile with VS2015

Post by Jabantiz » Wed May 24, 2017 9:37 pm

Linux always makes my life difficult...
I may actually just wrap it in a if not windows tag...

I should probably find a proper fix though.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Compile with VS2015

Post by John Adams » Thu Jun 01, 2017 8:56 am

Jabantiz wrote: Wed May 24, 2017 9:37 pm I should probably find a proper fix though.
:mrgreen:

Plague
Posts: 68
Joined: Mon Jun 29, 2015 3:17 pm
EQ2Emu Server: WiP

Re: Compile with VS2015

Post by Plague » Sun Jan 07, 2018 10:24 am

This are same errors I got with 2017... guess I'll have to find a 2013 and install to see if works.

User avatar
Cynnar
Project Leader
Posts: 738
Joined: Sat Sep 27, 2014 1:22 am
EQ2Emu Server: Eq2emulator
Characters: Vlash
Veinlash
Taragak
Cynnar

Re: Compile with VS2015

Post by Cynnar » Sun Jan 07, 2018 12:41 pm

I don't have these errors using 2017. I started with 2013 then moved to 2015 and up to 2017 though. Maybe has something to do with it? Doesn't it do a conversion when you move from one version to another?
[ 01000011 01111001 01101110 01101110 01100001 01110010 ]

Follow on:
Twitter Facebook

Contact me:
PM Discord chat email

Hardware: the parts of a computer that can be kicked

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Compile with VS2015

Post by John Adams » Wed Jan 10, 2018 5:06 pm

A new problem, and oddly with LoginServer.exe build (devs only), though far as I know nothing in Login has changed?

The Player.h file has an initialize in the class, which VS2015 is saying is illegal.
Line 814

Code: Select all

bool custNPC = false;
Not that I'm your boss anymore, but you really should avoid using shorthand on variable names. The alphabet costs no money to use :)

The error:
1>d:\dev\eq2\eq2\trunk\source\worldserver\Player.h(814): error C2864: 'Player::custNPC' : only static const integral data members can be initialized within a class (..\..\source\common\DatabaseResult.cpp)
anywhere that file is included. Why Player.h is being included in DatabaseResults.cpp is a mystery to me.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Compile with VS2015

Post by Jabantiz » Wed Jan 10, 2018 5:10 pm

World compiles fine though? If so that is odd, must be some sort of command line flag set in the config's for login that makes that illegal. Is a simple fix of just moving the initialization to the constructor.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Compile with VS2015

Post by John Adams » Wed Jan 10, 2018 5:14 pm

Jabantiz wrote: Wed Jan 10, 2018 5:10 pm World compiles fine though? If so that is odd, must be some sort of command line flag set in the config's for login that makes that illegal. Is a simple fix of just moving the initialization to the constructor.
I was only messing with Login, I didn't try world, but that's exactly what I did; moved the = false to the constructor.

Let me guess, you were being lazy? :)

I'll have to check the settings. Odd that there would be a switch to allow that. You'd think it would be allowed in general.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests