Success! But I am not entirely sure why. I got the thing to link by including the following libraries from MinGW\lib in this special order:
ws2_32 wsock32 winmm And it actually runs and works!!! Now, can anyone explain why building with GCC/MinGW requires all these additional libraries? Thanks, -Qu0ll On Wed, Apr 22, 2009 at 9:45 PM, Qu0ll <[email protected]> wrote: > OK, getting very close now. > > Most of those errors were because I was still passing the compiler command > option to use a shared V8 library even though I built a static one. > Removing that now leaves the following unresolved references, all from the > problematic platform-win32.cc: > > > g++ -LD:\MSYS\1.0\home\Qu0ll\V8\trunk -LD:\MinGW\lib -ov8-hello-world.exe > Source\helloWorld.o -lv8 > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal4Time16SetToCurrentTimeEv+0x2d): > undefined reference to `_timegett...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal4Time16SetToCurrentTimeEv+0x78): > undefined reference to `_timegett...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS17TimeCurrentMillisEv+0x39): > undefined reference to `_timegett...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS17TimeCurrentMillisEv+0x8c): > undefined reference to `_timegett...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS5SetupEv+0x39): > undefined reference to `_timegett...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS5SetupEv+0x8c): > more undefined references to `_timegett...@0' follow > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x52): > undefined reference to `_ht...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x66): > undefined reference to `_ht...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket4BindEi+0x85): > undefined reference to `_b...@12' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket6ListenEi+0x2f): > undefined reference to `_lis...@8' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket6AcceptEv+0x29): > undefined reference to `_acc...@12' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0x7f): > undefined reference to `_getaddri...@16' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0xa5): > undefined reference to `_conn...@12' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket7ConnectEPKcS3_+0xb6): > undefined reference to `_freeaddri...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket8ShutdownEv+0x40): > undefined reference to `_shutd...@8' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket8ShutdownEv+0x50): > undefined reference to `_closesoc...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD0Ev[v8::internal::Win32Socket::~Win32Socket()]+0x40): > undefined reference to `_shutd...@8' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD0Ev[v8::internal::Win32Socket::~Win32Socket()]+0x4e): > undefined reference to `_closesoc...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD1Ev[v8::internal::Win32Socket::~Win32Socket()]+0x36): > undefined reference to `_shutd...@8' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32SocketD1Ev[v8::internal::Win32Socket::~Win32Socket()]+0x44): > undefined reference to `_closesoc...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket4SendEPKci+0x24): > undefined reference to `_s...@16' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZNK2v88internal11Win32Socket7ReceiveEPci+0x24): > undefined reference to `_r...@16' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal11Win32Socket15SetReuseAddressEb+0x3f): > undefined reference to `_setsock...@20' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket9LastErrorEv+0x1): > undefined reference to `_wsagetlaster...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket5SetupEv+0x17): > undefined reference to `_wsastar...@8' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket5SetupEv+0x34): > undefined reference to `_wsagetlaster...@0' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4HToNEt+0xc): > undefined reference to `_ht...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4NToHEt+0xc): > undefined reference to `_nt...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4HToNEj+0xb): > undefined reference to `_ht...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal6Socket4NToHEj+0xb): > undefined reference to `_nt...@4' > > D:\MSYS\1.0\home\Qu0ll\V8\trunk/libv8.a(platform-win32.o):platform-win32.cc:(.text$_ZN2v88internal2OS12CreateSocketEv+0x32): > undefined reference to `_soc...@12' > Again, it looks like I am missing a library or perhaps a link command > option. > Any ideas anyone? > > Thanks, > > -Qu0ll > > On Wed, Apr 22, 2009 at 9:07 PM, Qu0ll <[email protected]> wrote: > >> Ah, making a lot of progress now. >> >> I managed to get around that compile issue by removing a check in >> ws2tcpip.h for the version of WINNT as it didn't include the required >> definitions and I think this is a Vista issue. Anyway, everything builds >> now but I get the following bizarre link errors: >> >> >> g++ -LD:\MSYS\1.0\home\Qu0ll\V8\trunk -ov8-hello-world.exe >> Source\helloWorld.o -lv8 >> >> Source\helloWorld.o: In function `_ZNK2v86HandleINS_7ContextEEdeEv': >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v811HandleScopeC1Ev' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v87Context3NewEPNS_22ExtensionConfigurationENS_6HandleINS_14ObjectTemplateEEENS3_INS_5ValueEEE' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86String3NewEPKci' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86Script7CompileENS_6HandleINS_6StringEEEPNS_12ScriptOriginEPNS_10ScriptDataE' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86Script3RunEv' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86String10AsciiValueC1ENS_6HandleINS_5ValueEEE' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86String10AsciiValueD1Ev' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v811HandleScopeD1Ev' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v86String10AsciiValueD1Ev' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v811HandleScopeD1Ev' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v87Context4ExitEv' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v87Context5EnterEv' >> >> D:/SVN/V8/trunk/include/v8.h:2432: undefined reference to >> `__imp___ZN2v82V813DisposeGlobalEPPv' >> It looks like it needs another library or perhaps some link command >> option. >> >> Any ideas? >> >> 2009/4/22 Søren Gjesse <[email protected]> >> >>> It looks as if the include file ws2tcpip.h is not read correctly when >>> compiling platform-win32.cc - ws2tcpip.h declares getaddrinfo and >>> freeaddrinfo. >>> Regards, >>> Søren >>> >>> >>> On Wed, Apr 22, 2009 at 11:26, Qu0ll <[email protected]> wrote: >>> >>>> 2009/4/22 Søren Gjesse <[email protected]> >>>> >>>>> Copying my response from another thread. >>>>> The reason for this behavior is most likely caused by both Microsoft >>>>> Visual Studio and MinGW being installed. The current SCons setup for V8 >>>>> depends on the SCons autodetecting the toolchain, where MSVC is preferred >>>>> over MinGW. You could try patching SConstruct and src/SConscript files >>>>> adding tools = ['mingw'] to Environment() calls (Environment(tools = >>>>> ['mingw'])). >>>>> On a Windows installation with only MinGW installed V8 SCons build does >>>>> not cause problems. >>>>> >>>>> >>>> >>>> OK thanks, much progress has been made now. I have tried that but >>>> this is the result when I run scons after successfully compiling most of >>>> the >>>> modules: >>>> >>>> g++ -o obj\release\platform-win32.o -c -Wall -Werror -W >>>> -Wno-unused-parameter -pedantic -Wno-long-long -O3 -fomit-frame-pointer >>>> -fdata-sections -ffunction-sections -DWIN32 -fno-rtti -fno-exceptions >>>> -DWIN32 -Wall -Werror -W -Wno-unused-parameter -pedantic -Wno-long-long -O3 >>>> -fomit-frame-pointer -fdata-sections -ffunction-sections -DWIN32 >>>> -DENABLE_LOGGING_AND_PROFILING src\platform-win32.cc >>>> src\platform-win32.cc: In member function `virtual bool >>>> v8::internal::Win32Socket::Connect(const char*, const char*)': >>>> src\platform-win32.cc:1653: error: `getaddrinfo' was not declared in >>>> this scope >>>> src\platform-win32.cc:1660: error: `freeaddrinfo' was not declared in >>>> this scope >>>> src\platform-win32.cc:1653: warning: unused variable 'getaddrinfo' >>>> src\platform-win32.cc:1660: warning: unused variable 'freeaddrinfo' >>>> scons: *** [obj\release\platform-win32.o] Error 1 >>>> scons: building terminated because of errors. >>>> >>>> Any ideas how to resolve this one? >>>> >>>> -Qu0ll >>>> >>>> >>>> >>> >>> >>> >>> >> > --~--~---------~--~----~------------~-------~--~----~ v8-users mailing list [email protected] http://groups.google.com/group/v8-users -~----------~----~----~----~------~----~------~--~---
