I seem to be getting my clock cleaned by VC++. The juce test projects work fine, then once I start adding external libs it goes off the tracks.
I have:
juce compiled as multi-threaded static lib
another library (C++ sockets) as a multi-threaded static lib
my juce based app linked against same
All my paths seem to be OK, and after a lot of header order switching I can make the whole thing compile. But it won’t link.
First I had 4 link errors, unable to resolve xran and xlen (the lib uses std::string and STL). I googled the heck out of that, checked and rechecked what libs I was using, then started trial and error.
I changed (VCInstallDir)lib in my paths to (VSInstallDir)lib - I had thought it was just a difference between Jules’ install and mine, but now I suspect not.
Now libcpmt.lib isn’t found - I add C:\PROGRAM FILES\Microsoft Visual Studio 8\VC\lib, where this lib is, and get back to the string errors (see below)
Anyone have clues please? Or can anyone tell me where to explore further? Am I Missing files?
Bruce
[code]Build Log Rebuild started: Project: EncoreVC, Configuration: Release|Win32
Command Lines Creating temporary file “c:\Documents and Settings\Bruce Wheaton\My Documents\Visual Studio 2005\Projects\EncoreVC_j41\Release\RSP0000721396112.rsp” with contents
[
/O2 /Ob1 /D “WIN32” /D “NDEBUG” /D “_WINDOWS” /D “SOCKETS_NAMESPACE=sockets” /D “SOCKETS_NAMESPACE_STR=’“sockets”’” /D “_THREADSAFE_SOCKETS” /D “_VC80_UPGRADE=0x0600” /D “_MBCS” /GF /FD /EHsc /MT /Gy /Fp".\Release/EncoreVC.pch" /Fo".\Release/" /Fd".\Release/" /W3 /c /TP “.\src\Comms\DeviceDirectSocket.cpp”
<snip, source files compiling successfully>
]
Creating command line “cl.exe @“c:\Documents and Settings\Bruce Wheaton\My Documents\Visual Studio 2005\Projects\EncoreVC_j41\Release\RSP0000721396112.rsp” /nologo /errorReport:prompt”
Creating command line “rc.exe /d “NDEBUG” /d “_VC80_UPGRADE=0x0600” /l 0x409 /fo”.\Release/EncoreVC.res" “.\EncoreVC.rc”"
Creating temporary file “c:\Documents and Settings\Bruce Wheaton\My Documents\Visual Studio 2005\Projects\EncoreVC_j41\Release\RSP0000731396112.rsp” with contents
[
/OUT:".\Release/EncoreVC.exe" /INCREMENTAL:NO /LIBPATH:"…/…/bin" /MANIFEST /MANIFESTFILE:".\Release\EncoreVC.exe.intermediate.manifest" /PDB:".\Release/EncoreVC.pdb" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib “.\lib\r\sockets.lib” “…\juce\bin\jucelib_static_win32.lib”
]
Creating command line “link.exe @“c:\Documents and Settings\Bruce Wheaton\My Documents\Visual Studio 2005\Projects\EncoreVC_j41\Release\RSP0000731396112.rsp” /NOLOGO /ERRORREPORT:PROMPT”
Output Window Compiling…
blah blah some more compiling, a few type rounding warnings…
Generating Code…
Compiling resources…
Linking…
sockets.lib(PoolSocket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(ResolvSocket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(CircularBuffer.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(Base64.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(TcpSocket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(Utility.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(Parse.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(ResolvServer.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
EncoreVC_Document.obj : error LNK2019: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ) referenced in function “private: bool __thiscall std::basic_string,class std::allocator >::_Grow(unsigned int,bool)” (?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z)
DeviceDirectSocket.obj : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(SocketHandler.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(Socket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xlen(void)” (?_Xlen@std@@YAXXZ)
sockets.lib(Utility.obj) : error LNK2019: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ) referenced in function __ehhandler$?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z
sockets.lib(Parse.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
sockets.lib(ResolvSocket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
sockets.lib(CircularBuffer.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
DeviceDirectSocket.obj : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
sockets.lib(SocketHandler.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
sockets.lib(Socket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
sockets.lib(TcpSocket.obj) : error LNK2001: unresolved external symbol “void __cdecl std::_Xran(void)” (?_Xran@std@@YAXXZ)
.\Release/EncoreVC.exe : fatal error LNK1120: 2 unresolved externals
Results Build log was saved at “file://c:\Documents and Settings\Bruce Wheaton\My Documents\Visual Studio 2005\Projects\EncoreVC_j41\Release\BuildLog.htm”
EncoreVC - 21 error(s), 19 warning(s)
[/code]