From: Andrew P. <at...@pi...> - 2014-10-12 19:00:23
|
Well, I belatedly realized that I need to build a 32-bit Naviserver on my 64-bit Windows 7 box. (The old proprietary library I currently need to link against is only available in 32-bit. I hope to port to a newer library, but first I need to get my old code actually working with Naviserver on this box.) So I configured my command prompt build with "/x86" rather than "/x64", like so: "%ProgramFiles%\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Debug /x86 /win7 nmake -f Makefile.win32 all-core My branch includes better build support for 32-bit (although still not yet good enough): https://bitbucket.org/apiskors/naviserver/commits/all My new 32-bit Naviserver can't even run "nsd -h"! It dies immediately with: The application was unable to start correctly (0xc000007b). Click OK to close the application. Looks like it dies before invoke any Naviserver or Tcl code at all, so I think either I've linked Naviserver wrong, or something is broken on my Windows box. I verified that all my compiled Naviserver code is indeed 32-bit with this: dumpbin /headers *.exe *.dll | findstr machine Oddly, Dependency Walker thinks that ALL of the external DLLs nsd.exe is using are 64-bit! That would be very bad, but I'm not sure if it's actually true. Reports on the web say that Dependency Walker can incorrectly report such problems because it doesn't ignore 64-bit libraries the sam way Windows itself does. http://www.dependencywalker.com/ Naviserver's include/Makefile.win32 links against these Windows libraries: kernel32.lib advapi32.lib ws2_32.lib user32.lib Do I need to do something special to find the 32-bit versions of those? -- Andrew Piskorski <at...@pi...> |