Linking errors VC++ 6.0 SP5 latest CVS

Trying to build your own version of Vega Strike and having problems? Unix users, paste your config.log here (stderr output alone is not helpful).
Post Reply
szabo
Merchant
Merchant
Posts: 48
Joined: Sun Feb 08, 2004 12:10 am
Contact:

Linking errors VC++ 6.0 SP5 latest CVS

Post by szabo »

I have checked out everything through CVS today, and am trying to build a working executable. I use Visual Studio 6.0 with SP5 applied. The compilation stage works fine (with a few warnings), but when it gets to linking it spits out the following:


Linking...
Creating library ..\data4.x\bin\vegastrike.lib and object ..\data4.x\bin\vegastrike.exp
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
netbuffer.obj : error LNK2001: unresolved external symbol "void __cdecl VsnetOSS::memcpy(void *,void const *,int)" (?memcpy@VsnetOSS@@YAXPAXPBXH@Z)
packet.obj : error LNK2001: unresolved external symbol "void __cdecl VsnetOSS::memcpy(void *,void const *,int)" (?memcpy@VsnetOSS@@YAXPAXPBXH@Z)
vsnet_dloadmgr.obj : error LNK2001: unresolved external symbol "void __cdecl VsnetOSS::memcpy(void *,void const *,int)" (?memcpy@VsnetOSS@@YAXPAXPBXH@Z)
netui.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::close_socket(int)" (?close_socket@VsnetOSS@@YAHH@Z)
vsnet_pipe.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::close_socket(int)" (?close_socket@VsnetOSS@@YAHH@Z)
vsnet_serversocket.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::close_socket(int)" (?close_socket@VsnetOSS@@YAHH@Z)
netui.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::inet_aton(char const *,struct in_addr *)" (?inet_aton@VsnetOSS@@YAHPBDPAUin_addr@@@Z)
netui.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::socket(int,int,int)" (?socket@VsnetOSS@@YAHHHH@Z)
netserver_login.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netserver_net.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
zonemgr.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netserver.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netserver_acct.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netserver_clients.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netserver_devices.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
client.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netclient.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netclient_clients.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netclient_login.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_serversocket.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_socketset.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_socketudp.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netui.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
packet.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_dloadmgr.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
vsnet_notify.obj : error LNK2001: unresolved external symbol "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl vsnetDbgOut(char const *,int)" (?vsnetDbgOut@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@PBDH@Z)
netui.obj : error LNK2001: unresolved external symbol "public: void __thiscall VsnetSocketBase::disconnect(char const *,bool)" (?disconnect@VsnetSocketBase@@QAEXPBD_N@Z)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: void __thiscall VsnetSocketBase::disconnect(char const *,bool)" (?disconnect@VsnetSocketBase@@QAEXPBD_N@Z)
netserver.obj : error LNK2001: unresolved external symbol "public: void __thiscall VsnetSocketBase::disconnect(char const *,bool)" (?disconnect@VsnetSocketBase@@QAEXPBD_N@Z)
netui.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocketBase::set_nonblock(void)" (?set_nonblock@VsnetSocketBase@@QAE_NXZ)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocketBase::set_nonblock(void)" (?set_nonblock@VsnetSocketBase@@QAE_NXZ)
vsnet_dloadmgr.obj : error LNK2001: unresolved external symbol "public: __thiscall VsnetDownload::RecvCmdDownload::~RecvCmdDownload(void)" (??1RecvCmdDownload@VsnetDownload@@QAE@XZ)
vsnet_dloadmgr.obj : error LNK2001: unresolved external symbol "public: enum VsnetDownload::Subcommand __thiscall VsnetDownload::RecvCmdDownload::parse(void)" (?parse@RecvCmdDownload@VsnetDownload@@QAE?AW4Subcommand@2@XZ)
vsnet_dloadmgr.obj : error LNK2001: unresolved external symbol "public: __thiscall VsnetDownload::RecvCmdDownload::RecvCmdDownload(class NetBuffer &)" (??0RecvCmdDownload@VsnetDownload@@QAE@AAVNetBuffer@@@Z)
vsnet_pipe.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::recv(int,void *,unsigned int,int)" (?recv@VsnetOSS@@YAHHPAXIH@Z)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "int __cdecl VsnetOSS::recv(int,void *,unsigned int,int)" (?recv@VsnetOSS@@YAHHPAXIH@Z)
vsnet_socketudp.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
netserver_net.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
vsnet_serversocket.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
vsnet_socketset.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::get_fd(void)const " (?get_fd@VsnetSocketBase@@QBEHXZ)
vsnet_serversocket.obj : error LNK2001: unresolved external symbol "public: __thiscall VsnetSocketBase::VsnetSocketBase(int,char const *,class SocketSet &)" (??0VsnetSocketBase@@QAE@HPBDAAVSocketSet@@@Z)
vsnet_serversocket.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall VsnetSocketBase::~VsnetSocketBase(void)" (??1VsnetSocketBase@@UAE@XZ)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocketBase::valid(void)const " (?valid@VsnetSocketBase@@QBE_NXZ)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocket::eq(class VsnetSocket const &)const " (?eq@VsnetSocket@@QBE_NABV1@@Z)
vsnet_socket.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocket::lt(class VsnetSocket const &)const " (?lt@VsnetSocket@@QBE_NABV1@@Z)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall VsnetSocket::~VsnetSocket(void)" (??1VsnetSocket@@UAE@XZ)
vsnet_socketudp.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall VsnetSocket::~VsnetSocket(void)" (??1VsnetSocket@@UAE@XZ)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "public: __thiscall VsnetSocket::VsnetSocket(int,struct AddressIP const &,char const *,class SocketSet &)" (??0VsnetSocket@@QAE@HABUAddressIP@@PBDAAVSocketSet@@@Z)
vsnet_socketudp.obj : error LNK2001: unresolved external symbol "public: __thiscall VsnetSocket::VsnetSocket(int,struct AddressIP const &,char const *,class SocketSet &)" (??0VsnetSocket@@QAE@HABUAddressIP@@PBDAAVSocketSet@@@Z)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "public: int __thiscall VsnetSocketBase::close_fd(void)" (?close_fd@VsnetSocketBase@@QAEHXZ)
vsnet_sockettcp.obj : error LNK2001: unresolved external symbol "public: bool __thiscall VsnetSocketBase::get_nonblock(void)const " (?get_nonblock@VsnetSocketBase@@QBE_NXZ)
..\data4.x\bin\vegastrike.exe : fatal error LNK1120: 21 unresolved externals
Error executing link.exe.

vegastrike.exe - 55 error(s), 1 warning(s)



I can see the "defaultlib LIBC conflict" message at the very beginning - is it the cause of all the other errors? I'm not sure how am I supposed to fix it either.


FWIW, the compile warnings are (cut with a bit of context):

ikarus.cpp
input_dfa.cpp
d:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\limits.h(30) : note C6311: ..\vegastrike\src\gldrv/winsys.h(23) : see previous definition of 'UCHAR_MAX'
(...)
prapid.cpp
E:\vegastrike\vegastrike\src\cmd\collide\garray.h(143) : note C6311: E:\vegastrike\vegastrike\src\cmd\collide\cs_compat.h(80) : see previous definition of 'CS_DECLARE_GROWING_ARRAY_REF'
(...)
jpeg_memory.cpp
E:\vegastrike\vegastrike\src\gfx\jpeg_memory.h(1) : note C6311: unknown(0) : see previous definition of 'JPEG_SUPPORT'
include\jmorecfg.h(215) : note C6311: d:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\windef.h(135) : see previous definition of 'FAR'
(...)
vsimage.cpp
include\jmorecfg.h(215) : note C6311: d:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\windef.h(135) : see previous definition of 'FAR'
..\vegastrike\src\gfx/jpeg_memory.h(1) : note C6311: unknown(0) : see previous definition of 'JPEG_SUPPORT'

Everything else compiles fine - and then the linker barfs.



(edit) after reading this thread I tried adding manually all the files in src\networking\lowlevel, but when I rebuild everything I get exactly the same errors.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

it looks like the project file is missing a few files in networking/lowlevel
try adding all .cpp files in networking/lowlevel to the project

let me know what's different if you can get it to work...I may try it myself later
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
szabo
Merchant
Merchant
Posts: 48
Joined: Sun Feb 08, 2004 12:10 am
Contact:

Post by szabo »

No, adding to the project the files in src\networking\lowlevel results in absolutely no change. I get exactly the same errors.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

committed a fixed project

it works for me now
gave same errors before
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
szabo
Merchant
Merchant
Posts: 48
Joined: Sun Feb 08, 2004 12:10 am
Contact:

Post by szabo »

hellcatv wrote:committed a fixed project

it works for me now
gave same errors before
Works very well, thank you!

I'll see if I can setup a machine to automatically checkout from CVS and compile a Windows binary then upload it to a server - maybe not daily, but every 3-4 days. And if the compile/linking fails, upload an error log instead.

I wonder why is the program crashing if I try to start it from the launcher, but runs fine if I start vegastrike.exe directly.
.
.
.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

I bet the launcher is trying to launch mission/explore_universe.mission
the real mission is now called explore_universe.mission (no mission path needed) this is due to the new changes in the filesystem that let you load paths from zip files instead
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
szabo
Merchant
Merchant
Posts: 48
Joined: Sun Feb 08, 2004 12:10 am
Contact:

Post by szabo »

Update: I now have a working script which updates the local CVS hierarchy, then compiles from it the debug binary and uploads it together with the compile log on http://ctamasd.dtdns.net:22/vs/

Next let me see if I can setup cron to update, build and upload automatically every 2-3 days.


.
hellcatv
Developer
Developer
Posts: 3980
Joined: Fri Jan 03, 2003 4:53 am
Location: Stanford, CA
Contact:

Post by hellcatv »

test it right now sinec I committed the fix lol
Vega Strike Lead Developer
http://vegastrike.sourceforge.net/
Post Reply