From: Andrew P. <at...@pi...> - 2014-10-07 18:51:23
|
On Fri, Oct 03, 2014 at 04:16:41PM +0200, Maurizio Martignano wrote: > Dear Andrew, > These are the basic options I would use for a Windows 64 bit, AMD64: > > COPTS = /EHsc /W3 /nologo /c > DEFS = $(DEFS) /D "_WINDOWS" /D "TCL_THREADS=1" /D "WIN32" /D "_WIN32" \ > /D "FD_SETSIZE=128" /D "NO_CONST=1" /D "_MBCS" # /D "_USE_32BIT_TIME_T" > LOPTS = /NOLOGO /SUBSYSTEM:CONSOLE /OPT:NOREF /OPT:NOICF Did you comment out your _USE_32BIT_TIME_T there? What does "/D _WIN32" do? What C run-time library are you using? I've been able to find Microsoft docs on the various compiler and linker flags, but NOT anything clear on what all the magic /D preprocessor definitions actually do. The nmake files I got from Ibrahim (at Archiware) use the "/MTd" compiler flag, which should give me the debug version of the "libcmtd.lib" CRT, as explained here: http://msdn.microsoft.com/en-us/library/abx4dbyh%28v=vs.100%29.aspx http://msdn.microsoft.com/en-us/library/2kzt1wy3%28v=vs.100%29.aspx The other main option is /MDd for "msvcrtd.lib", but I don't know which is the default when you pass no flags at all. Most of our other build options are the same. However, besides the ones I mentioned above, I am also using these extra flags that you do not have: In COPTS: /Zi /RTC1 In DEFS: /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D "_DEBUG" In LOPTS: /DEBUG AFAICT those all just enable additional debugging and/or run-time checks, and so should be pretty safe. -- Andrew Piskorski <at...@pi...> |