Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » C / C++ IDE (CDT) » CDT using Visual C++(Problems linking with latest CDT using Visual C++ Win7/Win64)
CDT using Visual C++ [message #756803] Tue, 15 November 2011 07:50 Go to next message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
Latest CDT update using Indigo, I get a failure during link.

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

Below is the console output from a clean build, with a "PRE BUILD" script that does a build using the same commands as the seen from the CDT build. The script compiles, links, then runs the HelloWorld Sample. Then the CDT runs (as far as I can tell) the same command sequence, but fails. Can any one help??


**** Build of configuration Debug for project HelloWorld ****

**** Internal Builder is used for build ****
vctest.bat

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>call C:\usr\lib\SDK\Windows\v7.1\Bin\SetEnv.Cmd /Debug /x64 /win7
ERROR: The system was unable to find the specified registry key or value.
Setting SDK environment relative to C:\usr\lib\SDK\Windows\v7.1\.
Targeting Windows 7 x64 Debug

cd
C:\usr\toolbox\workspace\projects\HelloWorld\Debug
which cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\cl.exe
which link.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\amd64\link.exe
A subdirectory or file src already exists.
cl /c /DWIN64 /D_AMD64_ /EHs /MD /Zi /nologo /Fosrc\HelloWorld.obj ..\src\HelloWorld.cpp
HelloWorld.cpp
link /VERBOSE /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj

Starting pass 1
Processed /DEFAULTLIB:msvcprt
Processed /DEFAULTLIB:MSVCRT
Processed /DEFAULTLIB:OLDNAMES

Searching libraries
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\msvcprt.lib:
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > & (__cdecl*)(class std::basic_ostream<char,struct std::char_traits<char> > &))" (__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)" (__imp_?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > std::cout" (__imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: void __cdecl std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (__imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __cdecl std::ios_base::width(__int64)" (__imp_?width@ios_base@std@@QEAA_J_J@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,__int64)" (__imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (__imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_streambuf<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (__imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (__imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: int __cdecl std::ios_base::flags(void)const " (__imp_?flags@ios_base@std@@QEBAHXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __cdecl std::ios_base::width(void)const " (__imp_?width@ios_base@std@@QEBA_JXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (__imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (__imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: bool __cdecl std::ios_base::good(void)const " (__imp_?good@ios_base@std@@QEBA_NXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: void __cdecl std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (__imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) bool __cdecl std::uncaught_exception(void)" (__imp_?uncaught_exception@std@@YA_NXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found __IMPORT_DESCRIPTOR_MSVCP100
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
Found __NULL_IMPORT_DESCRIPTOR
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
MSVCP100_NULL_THUNK_DATA
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\MSVCRT.lib:
Found __CxxFrameHandler3
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(MSVCR100.dll)
Found strlen
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(MSVCR100.dll)
Found mainCRTStartup
Loaded MSVCRT.lib(crtexe.obj)
Found __IMPORT_DESCRIPTOR_MSVCR100
Referenced in MSVCRT.lib(MSVCR100.dll)
Referenced in MSVCRT.lib(MSVCR100.dll)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __CxxSetUnhandledExceptionFilter
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(unhandld.obj)
Found _amsg_exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___getmainargs
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _dowildcard
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(wildcard.obj)
Found _newmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(_newmode.obj)
Found atexit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(atonexit.obj)
Found _RTC_Terminate
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(_initsect_.obj)
Found __C_specific_handler
Referenced in MSVCRT.lib(crtexe.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _XcptFilter
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp__exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp__cexit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp_exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___initenv
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _IsNonwritableInCurrentImage
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(pesect.obj)
Found _initterm
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __xc_a
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(cinitexe.obj)
Processed /DEFAULTLIB:kernel32.lib
Processed /DISALLOWLIB:libcmt.lib
Processed /DISALLOWLIB:libcmtd.lib
Processed /DISALLOWLIB:msvcrtd.lib
Found _initterm_e
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __native_startup_state
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(natstart.obj)
Found __imp__configthreadlocale
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __globallocalestatus
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xthdloc.obj)
Found __imp___setusermatherr
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _matherr
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(merr.obj)
Found _setargv
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(dllargv.obj)
Found _commode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xncommod.obj)
Found __imp__commode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _fmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xtxtmode.obj)
Found __imp__fmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___set_app_type
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __security_init_cookie
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(gs_support.obj)
MSVCR100_NULL_THUNK_DATA
Referenced in MSVCRT.lib(MSVCR100.dll)
Loaded MSVCRT.lib(MSVCR100.dll)
Found "void __cdecl terminate(void)" (?terminate@@YAXXZ)
Referenced in MSVCRT.lib(unhandld.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _unlock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __dllonexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found _lock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp__onexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __security_cookie_complement
Referenced in MSVCRT.lib(gs_support.obj)
Loaded MSVCRT.lib(gs_cookie.obj)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\OLDNAMES.lib:
Searching C:\usr\lib\SDK\Windows\v7.1\Lib\X64\kernel32.lib:
Found __imp_Sleep
Referenced in MSVCRT.lib(crtexe.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_EncodePointer
Referenced in MSVCRT.lib(crtexe.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_SetUnhandledExceptionFilter
Referenced in MSVCRT.lib(unhandld.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_DecodePointer
Referenced in MSVCRT.lib(atonexit.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_QueryPerformanceCounter
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_GetTickCount
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_GetCurrentThreadId
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_GetCurrentProcessId
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp_GetSystemTimeAsFileTime
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __IMPORT_DESCRIPTOR_KERNEL32
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
KERNEL32_NULL_THUNK_DATA
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\msvcprt.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\MSVCRT.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\amd64\OLDNAMES.lib:

Finished searching libraries

Finished pass 1

Starting pass 2
HelloWorld.obj
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
MSVCRT.lib(unhandld.obj)
MSVCRT.lib(atonexit.obj)
MSVCRT.lib(cinitexe.obj)
MSVCRT.lib(crtexe.obj)
MSVCRT.lib(dllargv.obj)
MSVCRT.lib(gs_cookie.obj)
MSVCRT.lib(gs_support.obj)
MSVCRT.lib(merr.obj)
MSVCRT.lib(natstart.obj)
MSVCRT.lib(pesect.obj)
MSVCRT.lib(wildcard.obj)
MSVCRT.lib(_newmode.obj)
MSVCRT.lib(xncommod.obj)
MSVCRT.lib(xtxtmode.obj)
MSVCRT.lib(xthdloc.obj)
MSVCRT.lib(_initsect_.obj)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
Finished pass 2
HelloWorld.exe
!!!Hello World!!!
cl /c /DWIN64 /D_AMD64_ /EHs /MD /Zi /nologo /Fosrc\HelloWorld.obj ..\src\HelloWorld.cpp
HelloWorld.cpp
link /VERBOSE /MACHINE:X64 /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj

Starting pass 1
src\HelloWorld.obj : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
Build error occurred, build is stopped
Time consumed: 2977 ms.

Re: CDT using Visual C++ [message #756935 is a reply to message #756803] Tue, 15 November 2011 15:24 Go to previous messageGo to next message
HagenFriend
Messages: 90
Registered: April 2010
Member
On 11/15/2011 8:50 AM, Gerald Kozina wrote:
> Latest CDT update using Indigo, I get a failure during link.
> fatal error LNK1112: module machine type 'X86' conflicts with target
> machine type 'x64'

The linker option /MACHINE:X64 requests a 64bit link, but
the OBJ file is compiled with the 32bit "cl.exe" variant.

Please see:
http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx

Remedy:
- set proper environment variables before starting Eclipse/CDT
OR
- remove /MACHINE:X64 environment variable from linker invocation
Re: CDT using Visual C++ [message #757032 is a reply to message #756935] Wed, 16 November 2011 07:36 Go to previous messageGo to next message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
The environment is properly set before eclipse is started.

If I remove the /MACHINE:X64 then the link fails for unresolved references.

It appears that what CDT sends to the log as the compile command is not quite the same as it uses, or that the PATH it uses to the cl.exe is different from that which would be found normally in the path. It should be picking up the 64 bit compiler not the 32.

But I do not know where CDT is keeping that information internally so I can check if it is correct.
Re: CDT using Visual C++ [message #757347 is a reply to message #757032] Thu, 17 November 2011 20:42 Go to previous messageGo to next message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
It seems CDT in eclipse only works with 32Bit on Windows. If I setup Visual C++ for 32Bit all works fine.
But is set for 64Bit then it still seems to create a 32Bit obj. And then fails trying to link it.

This seems to happen no matter what I do to try and get it to use the 64bit compiler, specifying full paths or whatever.

Is there somewhere the path to the compiler stored by the tool chain? Can it be changed??

The problem does not seem like it can be in the setup, as in the pre-build steps my vctest.bat file

runs a compile and link and execute just fine in both 64 and 32 bit setups.

I would use MinGW if it supported 64bit.

**** Build of configuration Debug for project HelloWorld ****

**** Internal Builder is used for build ****
vctest.bat

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo cd
cd

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>cd
C:\usr\toolbox\workspace\projects\HelloWorld\Debug

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo which cl.exe
which cl.exe

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>which cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\cl.exe

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo which link.exe
which link.exe

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>which link.exe
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\link.exe

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>mkdir src
A subdirectory or file src already exists.

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo cl /c /DWIN32 /D_AMD64_ /EHs /MD /Zi /nologo /Fosrc\HelloWorld.obj ..\src\HelloWorld.cpp
cl /c /DWIN32 /D_AMD64_ /EHs /MD /Zi /nologo /Fosrc\HelloWorld.obj ..\src\HelloWorld.cpp

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>cl /c /DWIN32 /D_AMD64_ /EHs /MD /Zi /nologo /Fosrc\HelloWorld.obj ..\src\HelloWorld.cpp
HelloWorld.cpp

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo link /VERBOSE /MACHINE:X86 /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj
link /VERBOSE /MACHINE:X86 /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>link /VERBOSE /MACHINE:X86 /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj

Starting pass 1
Processed /DEFAULTLIB:msvcprt
Processed /DEFAULTLIB:MSVCRT
Processed /DEFAULTLIB:OLDNAMES

Searching libraries
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\msvcprt.lib:
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > & (__cdecl*)(class std::basic_ostream<char,struct std::char_traits<char> > &))" (__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > std::cout" (__imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::endl(class std::basic_ostream<char,struct std::char_traits<char> > &)" (__imp_?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (__imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __thiscall std::ios_base::width(__int64)" (__imp_?width@ios_base@std@@QAE_J_J@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,__int64)" (__imp_?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE_JPBD_J@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (__imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (__imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (__imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: int __thiscall std::ios_base::flags(void)const " (__imp_?flags@ios_base@std@@QBEHXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: __int64 __thiscall std::ios_base::width(void)const " (__imp_?width@ios_base@std@@QBE_JXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (__imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (__imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: bool __thiscall std::ios_base::good(void)const " (__imp_?good@ios_base@std@@QBE_NXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (__imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found "__declspec(dllimport) bool __cdecl std::uncaught_exception(void)" (__imp_?uncaught_exception@std@@YA_NXZ)
Referenced in HelloWorld.obj
Loaded msvcprt.lib(MSVCP100.dll)
Found __IMPORT_DESCRIPTOR_MSVCP100
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
Found __NULL_IMPORT_DESCRIPTOR
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
Found MSVCP100_NULL_THUNK_DATA
Referenced in msvcprt.lib(MSVCP100.dll)
Loaded msvcprt.lib(MSVCP100.dll)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\MSVCRT.lib:
Found ___security_cookie
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(gs_cookie.obj)
Found ___CxxFrameHandler3
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(MSVCR100.dll)
Found @__security_check_cookie@4
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(secchk.obj)
Found _strlen
Referenced in HelloWorld.obj
Loaded MSVCRT.lib(MSVCR100.dll)
Found _mainCRTStartup
Loaded MSVCRT.lib(crtexe.obj)
Found __IMPORT_DESCRIPTOR_MSVCR100
Referenced in MSVCRT.lib(MSVCR100.dll)
Referenced in MSVCRT.lib(MSVCR100.dll)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___report_gsfailure
Referenced in MSVCRT.lib(secchk.obj)
Loaded MSVCRT.lib(gs_report.obj)
Found ___CxxSetUnhandledExceptionFilter
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(unhandld.obj)
Found __amsg_exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp____getmainargs
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __dowildcard
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(wildcard.obj)
Found __newmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(_newmode.obj)
Found _atexit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(atonexit.obj)
Found __RTC_Terminate
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(_initsect_.obj)
Found __imp___cexit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __XcptFilter
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp__exit
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp____initenv
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __IsNonwritableInCurrentImage
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(pesect.obj)
Found __initterm
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___xc_a
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(cinitexe.obj)
Processed /DEFAULTLIB:kernel32.lib
Processed /DISALLOWLIB:libcmt.lib
Processed /DISALLOWLIB:libcmtd.lib
Processed /DISALLOWLIB:msvcrtd.lib
Found __initterm_e
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___native_startup_state
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(natstart.obj)
Found __SEH_epilog4
Referenced in MSVCRT.lib(crtexe.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(sehprolg4.obj)
Found __except_handler4
Referenced in MSVCRT.lib(crtexe.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Referenced in MSVCRT.lib(pesect.obj)
Referenced in MSVCRT.lib(sehprolg4.obj)
Loaded MSVCRT.lib(chandler4gs.obj)
Found __imp___configthreadlocale
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___globallocalestatus
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xthdloc.obj)
Found __setdefaultprecision
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(fp8.obj)
Found __imp____setusermatherr
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __matherr
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(merr.obj)
Found __setargv
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(dllargv.obj)
Found __commode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xncommod.obj)
Found __imp___commode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___fmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __fmode
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(xtxtmode.obj)
Found __imp____set_app_type
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___security_init_cookie
Referenced in MSVCRT.lib(crtexe.obj)
Loaded MSVCRT.lib(gs_support.obj)
Found MSVCR100_NULL_THUNK_DATA
Referenced in MSVCRT.lib(MSVCR100.dll)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __crt_debugger_hook
Referenced in MSVCRT.lib(gs_report.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found "void __cdecl terminate(void)" (?terminate@@YAXXZ)
Referenced in MSVCRT.lib(unhandld.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __unlock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found ___dllonexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __lock
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __imp___onexit
Referenced in MSVCRT.lib(atonexit.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __except_handler4_common
Referenced in MSVCRT.lib(chandler4gs.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __invoke_watson
Referenced in MSVCRT.lib(fp8.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Found __controlfp_s
Referenced in MSVCRT.lib(fp8.obj)
Loaded MSVCRT.lib(MSVCR100.dll)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\OLDNAMES.lib:
Searching C:\usr\lib\SDK\Windows\v7.1\Lib\kernel32.lib:
Found __imp__InterlockedExchange@8
Referenced in MSVCRT.lib(crtexe.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__Sleep@4
Referenced in MSVCRT.lib(crtexe.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__InterlockedCompareExchange@12
Referenced in MSVCRT.lib(crtexe.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__HeapSetInformation@16
Referenced in MSVCRT.lib(crtexe.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__EncodePointer@4
Referenced in MSVCRT.lib(crtexe.obj)
Referenced in MSVCRT.lib(atonexit.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__TerminateProcess@8
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentProcess@0
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__UnhandledExceptionFilter@4
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__SetUnhandledExceptionFilter@4
Referenced in MSVCRT.lib(gs_report.obj)
Referenced in MSVCRT.lib(unhandld.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__IsDebuggerPresent@0
Referenced in MSVCRT.lib(gs_report.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__DecodePointer@4
Referenced in MSVCRT.lib(atonexit.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__QueryPerformanceCounter@4
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetTickCount@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentThreadId@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetCurrentProcessId@0
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __imp__GetSystemTimeAsFileTime@4
Referenced in MSVCRT.lib(gs_support.obj)
Loaded kernel32.lib(KERNEL32.dll)
Found __IMPORT_DESCRIPTOR_KERNEL32
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
Found KERNEL32_NULL_THUNK_DATA
Referenced in kernel32.lib(KERNEL32.dll)
Loaded kernel32.lib(KERNEL32.dll)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\msvcprt.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\MSVCRT.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\OLDNAMES.lib:

Finished searching libraries

Finished pass 1


Searching libraries
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\msvcprt.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\MSVCRT.lib:
Found __load_config_used
Loaded MSVCRT.lib(loadcfg.obj)
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\OLDNAMES.lib:
Searching C:\usr\lib\SDK\Windows\v7.1\Lib\kernel32.lib:
Searching C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Lib\msvcprt.lib:

Finished searching libraries
Starting pass 2
HelloWorld.obj
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
msvcprt.lib(MSVCP100.dll)
MSVCRT.lib(unhandld.obj)
MSVCRT.lib(atonexit.obj)
MSVCRT.lib(cinitexe.obj)
MSVCRT.lib(crtexe.obj)
MSVCRT.lib(dllargv.obj)
MSVCRT.lib(gs_cookie.obj)
MSVCRT.lib(gs_report.obj)
MSVCRT.lib(gs_support.obj)
MSVCRT.lib(merr.obj)
MSVCRT.lib(natstart.obj)
MSVCRT.lib(pesect.obj)
MSVCRT.lib(wildcard.obj)
MSVCRT.lib(chandler4gs.obj)
MSVCRT.lib(fp8.obj)
MSVCRT.lib(loadcfg.obj)
MSVCRT.lib(secchk.obj)
MSVCRT.lib(sehprolg4.obj)
MSVCRT.lib(_newmode.obj)
MSVCRT.lib(xncommod.obj)
MSVCRT.lib(xtxtmode.obj)
MSVCRT.lib(xthdloc.obj)
MSVCRT.lib(_initsect_.obj)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
MSVCRT.lib(MSVCR100.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
kernel32.lib(KERNEL32.dll)
Finished pass 2

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>echo HelloWorld.exe
HelloWorld.exe

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>HelloWorld.exe
!!!Hello World!!!

C:\usr\toolbox\workspace\projects\HelloWorld\Debug>dir
Volume in drive C is Windows7_OS
Volume Serial Number is 76A5-1E42

Directory of C:\usr\toolbox\workspace\projects\HelloWorld\Debug

11/17/2011 12:27 PM <DIR> .
11/17/2011 12:27 PM <DIR> ..
11/17/2011 12:27 PM 24,064 HelloWorld.exe
11/17/2011 12:27 PM 300,536 HelloWorld.ilk
11/17/2011 12:27 PM 461,824 HelloWorld.pdb
11/17/2011 12:05 PM <DIR> src
11/17/2011 12:27 PM 225,280 vc100.pdb
4 File(s) 1,011,704 bytes
3 Dir(s) 69,252,898,816 bytes free
link /VERBOSE /MACHINE:X86 /debug /nologo /OUT:HelloWorld.exe src\HelloWorld.obj
Build complete for project HelloWorld
Time consumed: 1061 ms.
Re: CDT using Visual C++ [message #757598 is a reply to message #757347] Sun, 20 November 2011 06:48 Go to previous messageGo to next message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
Below is a code snippet from org.eclipse.cdt\windows\org.eclipse.cdt.msw.build\src\org\eclipse\cdt\msw\build\WinEnvironmentVariableSupplier.java

As can be seen the VC and SDK paths are added, but fail to take account of any target platform settings. So you get a default
32bit environment, no matter what you do. The values are appended from registry values and the compiler is set to that value "\bin" when it should be "\bin\amd64" for a 64bit target. Same problem for the SDK.

So even if CDT has an org.eclipse.cdt.core.win32.x86_64 plugin, it is never going to generate a 64bit application only 32bit.

Visual C++ uses a different compiler and the SDK has different libraries for 64bit that are in different directories from the 32bit versions. Given the structure of the Visual C++ directories and the SDK it is not possible to update the Registry values to bypass this issue. Also I note that the Microsoft SDK when installed into a non-default location does not correctly update the paths in the SDK registry entries correctly. That can result in more confusion.

As CDT appends it values the front of the path, not the end, a correctly set environment also does not allow this to work.

I would suggest that there needs to be an option for 64bit targets. And a way to disable the CDT from disturbing the path as setup by the user. When I specifically specified a path set up in a project it was still corrupted by the internal path overrides. Not a good thing.

// Current support is for Windows SDK 7.1 with Visual C++ 10.0
// Secondary support for Windows SDK 7.0 with Visual C++ 9.0
private static String getSDKDir() {
WindowsRegistry reg = WindowsRegistry.getRegistry();
String sdkDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1", "InstallationFolder");
if (sdkDir != null)
return sdkDir;
return reg.getLocalMachineValue("SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.0", "InstallationFolder");
}

private static String getVCDir() {
WindowsRegistry reg = WindowsRegistry.getRegistry();
String vcDir = reg.getLocalMachineValue("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "10.0");
if (vcDir != null)
return vcDir;
return reg.getLocalMachineValue("SOFTWARE\\Microsoft\\VisualStudio\\SxS\\VC7", "9.0");
}

public static IPath[] getIncludePath() {
// Include paths
List<IPath> includePaths = new ArrayList<IPath>();
if (sdkDir != null) {
includePaths.add(new Path(sdkDir.concat("Include")));
includePaths.add(new Path(sdkDir.concat("Include\\gl")));
}

if (vcDir != null) {
includePaths.add(new Path(vcDir.concat("Include")));
}
return includePaths.toArray(new IPath[0]);
}

private static void addvar(IBuildEnvironmentVariable var) {
envvars.put(var.getName(), var);
}

private static synchronized void initvars() {
if (envvars != null)
return;
envvars = new HashMap<String, IBuildEnvironmentVariable>();

// The SDK Location
sdkDir = getSDKDir();
vcDir = getVCDir();

if (sdkDir == null && vcDir == null) {
return;
}

// INCLUDE
StringBuffer buff = new StringBuffer();
IPath includePaths[] = getIncludePath();
for (IPath path : includePaths) {
buff.append(path.toOSString()).append(';');
}
addvar(new WindowsBuildEnvironmentVariable("INCLUDE", buff.toString(), IBuildEnvironmentVariable.ENVVAR_PREPEND));

// LIB
buff = new StringBuffer();
if (vcDir != null)
buff.append(vcDir).append("Lib;");
if (sdkDir != null)
buff.append(sdkDir).append("Lib;");

addvar(new WindowsBuildEnvironmentVariable("LIB", buff.toString(), IBuildEnvironmentVariable.ENVVAR_PREPEND));

// PATH
buff = new StringBuffer();
if (vcDir != null) {
buff.append(vcDir).append("..\\Common7\\IDE;");
buff.append(vcDir).append("..\\Common7\\Tools;");
buff.append(vcDir).append("Bin;");
buff.append(vcDir).append("vcpackages;");
}
Re: CDT using Visual C++ [message #757628 is a reply to message #757598] Sun, 20 November 2011 15:53 Go to previous messageGo to next message
Andrew Gvozdev is currently offline Andrew GvozdevFriend
Messages: 257
Registered: July 2009
Senior Member
Gerald Kozina wrote on Sun, 20 November 2011 01:48
Below is a code snippet from org.eclipse.cdt\windows\org.eclipse.cdt.msw.build\src\org\eclipse\cdt\msw\build\WinEnvironmentVariableSupplier.java

As can be seen the VC and SDK paths are added, but fail to take account of any target platform settings. So you get a default
32bit environment, no matter what you do. The values are appended from registry values and the compiler is set to that value "\bin" when it should be "\bin\amd64" for a 64bit target. Same problem for the SDK.

So even if CDT has an org.eclipse.cdt.core.win32.x86_64 plugin, it is never going to generate a 64bit application only 32bit.

Visual C++ uses a different compiler and the SDK has different libraries for 64bit that are in different directories from the 32bit versions. Given the structure of the Visual C++ directories and the SDK it is not possible to update the Registry values to bypass this issue. Also I note that the Microsoft SDK when installed into a non-default location does not correctly update the paths in the SDK registry entries correctly. That can result in more confusion.

As CDT appends it values the front of the path, not the end, a correctly set environment also does not allow this to work.

I would suggest that there needs to be an option for 64bit targets. And a way to disable the CDT from disturbing the path as setup by the user. When I specifically specified a path set up in a project it was still corrupted by the internal path overrides. Not a good thing.

Could you open a bug in bugzilla on CDT build component and put your suggestions there?

Thanks,
Andrew
Re: CDT using Visual C++ [message #757710 is a reply to message #757628] Mon, 21 November 2011 10:30 Go to previous messageGo to next message
Axel Mueller is currently offline Axel MuellerFriend
Messages: 1973
Registered: July 2009
Senior Member
There are already two similar bugzilla requests
https://bugs.eclipse.org/bugs/show_bug.cgi?id=357980
https://bugs.eclipse.org/bugs/show_bug.cgi?id=362987


Quote:
I would use MinGW if it supported 64bit.

http://sourceforge.net/projects/mingw-w64/


Before you ask
- search this forum
- see the FAQ http://wiki.eclipse.org/CDT/User/FAQ
- google
Re: CDT using Visual C++ [message #757909 is a reply to message #757032] Wed, 16 November 2011 08:16 Go to previous messageGo to next message
HagenFriend
Messages: 90
Registered: April 2010
Member
On 11/16/2011 8:36 AM, Gerald Kozina wrote:
> It appears that what CDT sends to the log as the compile command is not
> quite the same as it uses

On the contrary - it is probably EXACTLY what it uses.
Note the absence of a fully qualified path.
Then the first "cl" found is used.

>, or that the PATH it uses to the cl.exe is
> different from that which would be found normally in the path. It should
> be picking up the 64 bit compiler not the 32.

Exactly. So in a batch file you could call vcvarsall.bat (as is
explained in the link I sent in my last message) to change to a 64bit
environment, then invoke Eclipse from there.

Or you can change your system-wide PATH variable to FIRST include the
64bit versions, THEN the 32bit versions of cl.exe and link.exe.

> But I do not know where CDT is keeping that information internally so I
> can check if it is correct.

Look around in the preferences panel. Probably you can setup the fully
qualified path to cl.exe and link.exe somewhere. Or you can override
PATH in the project specific build settings.
Re: CDT using Visual C++ [message #759545 is a reply to message #757909] Tue, 29 November 2011 06:16 Go to previous messageGo to next message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
I have figured out how to make eclipse work for 64 bit, but it is not easy, and involves a lot of cut and paste to correct the environment.

I always start eclipse from a batch file. The batch file sets the appropriate java environment as well as a Visual C++ environment. Then calls the eclipse executable.

But Eclipse CDT uses the registry keys (for SDK 7.1 and VC 10)
"SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\InstallationFolder"
"SOFTWARE\Microsoft\VisualStudio\SxS\VC7\10.0"
as the root/install locations (correctly).

It then prepends and in some cases replaces paths constructed from them that create a basic 32 bit Visual C++ environment. This overrides the values set before eclipse is started.

I originally thought that resetting the environment variables in the
C++ Build>environment panel did not seem to work, but that was because of an error I made in typing in the many long path names manually. It does work you can get it to override. But then that has to be done for each project.

Also only the CDT added INCLUDE paths seem to be used to resolve includes by the CDT editor. To get jni.h to resolve in edit I have to put the full path into the #include statement.

Re: CDT using Visual C++ [message #759548 is a reply to message #757909] Tue, 29 November 2011 06:36 Go to previous message
Gerald Kozina is currently offline Gerald KozinaFriend
Messages: 7
Registered: November 2011
Junior Member
>>Exactly. So in a batch file you could call vcvarsall.bat (as is
>>explained in the link I sent in my last message) to change to a 64bit
>>environment, then invoke Eclipse from there.

>>Or you can change your system-wide PATH variable to FIRST include the
>>64bit versions, THEN the 32bit versions of cl.exe and link.exe.

Neither of these suggestions will work. CDT prepends 32 Bit path values to the environment. To over ride it, you have to manually type them into
the C++ Build>environment panel.

I was wrong earlier when I said that did not work, I found I had made a typo typing in one of the more important entries. But that has to be done for each project. I find that prone to errors. The environment does not seem to come with a copy of an given configuration from another project, which would make things a bit easier.

I normally set my visual C++ using
C:\usr\lib\SDK\Windows\v7.1\Bin\SetEnv.Cmd /Debug /x64 /win7
I also normally set up the MinGW environment at the same time as I use that for some projects.

Editing long paths in small input fields is not my idea of fun.
Previous Topic:C: semantic coloring broken
Next Topic:"Ghost" errors
Goto Forum:
  


Current Time: Tue Apr 16 04:30:00 GMT 2024

Powered by FUDForum. Page generated in 0.24788 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top