| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
  [2012-11-16 08:10 UTC] ajron at wp dot pl
 Description:
------------
Microsoft linker version information option has format:
/VERSION:major[.minor]
The major and minor arguments are decimal numbers in the range 0 through 65,535. 
The default is version 0.0.
Linker puts this version number in the PE header of the .EXE file or DLL. There 
is no room in the PE header to put more than 2 numbers. Linkers before vs2012 
skip extra numbers during linking, but vs2012 linker throws error.
The problem is in \win32\build\config.w32 file.
There is:
// General link flags
DEFINE("LDFLAGS", "/nologo /version:" +
	PHP_VERSION + "." + PHP_MINOR_VERSION + "." + PHP_RELEASE_VERSION); 
Should be:
// General link flags
DEFINE("LDFLAGS", "/nologo /version:" +
	PHP_VERSION + "." + PHP_MINOR_VERSION); 
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             | 
    |||||||||||||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 12:00:01 2025 UTC | 
Strange :) I think, that "if (VCVERS >= 1700)" in your commit is unnecessary, because older versions also don't use PHP_MINOR_VERSION. This version is written only to MajorImageVersion and MinorImageVersion of IMAGE_OPTIONAL_HEADER of PE file header by all ms linkers. Below, there is the correct version for all compilers: DEFINE("LDFLAGS", "/nologo /version:" + PHP_VERSION + "." + PHP_MINOR_VERSION);