Compiling the 64bit version using VS2008 cross compiler
I noticed there is a problem with the 3rd party libraries (TBB, FreeImage, gl2ps) when compiling OCCT 6.5.1 for 64bit with VS2008 cross compiler on 32bit WinXP. Apparently, the mentioned libs do not get linked against.
This is what I do:
- I use the 'msvc.bat vc9 win64_on32 Release adm\win64\vc9\OCCT.sln' command to start VS
- 'win64_on32' configures the cross compiler through 'env_build.bat':
- 'set CSF_DEFINES=HAVE_TBB;HAVE_FREEIMAGE;HAVE_GL2PS' is NOT commented out in env_build.bat
- I compile OCCT
To my surprise, the output libraries are not linked against the 3rd party libs (e.g. TKernel.dll does not depend on tbbmalloc.dll).
This is strange because when I compile the same version for 32bit it all goes well. It all goes well when I compile on a 64bit system too.
With 'Process Explorer' I can also see that CSF_DEFINES was properly set for VS so I'm pretty sure that the environment is configured properly.
So something is missing about the cross compiler configuration. Does any one have an idea what that might be?
For example, TBB is linked using the following code:
#if __TBB_BUILD && !defined(__TBBMALLOC_NO_IMPLICIT_LINKAGE)
#define __TBBMALLOC_NO_IMPLICIT_LINKAGE 1
#pragma comment(lib, "tbbmalloc_debug.lib")
#pragma comment(lib, "tbbmalloc.lib")
Could this be that _MSC_VER is not defined or something?