Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Using nmake with managed builds

I'm not sure exactly what problem you're trying to solve but you might want to look at nmake inline files http://msdn.microsoft.com/library/default.asp?url="" in order to work around the 32K limit.

Regards,
Per

On 10/3/05, Alex Chapiro <achapiro@xxxxxxx> wrote:
Sounds strange. I tried nmake and got 32K length limit which is quite
enough for any reasonable project. I used VC++6.0 for testing.

vladchuk wrote:

>Alex Chapiro wrote:
>
>
>
>>I'm using cygwin make and WinXP for testing, i.e. exactly the case we
>>discussed. It successfully accepts command line longer than 16K. I
>>guess the limit is 32K (I just was lazy to test it), which is, I
>>suppose, much more than any reasonable requirement. What I'm saying,
>>there is no problem of command line length limitation with GNU make on
>>
>>
>
>
>
>>Windows environment. It still maybe exists for nmake.
>>
>>Recoskie, Chris wrote:
>>
>>
>>
>>>Yes, but of course YMMV depending on what make utility and OS you are
>>>using.
>>>
>>>You might find this tidbit I culled from the web interesting
>>>
>>>(http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx)
>>>
>>>What is the command line length limit?
>>>It depends on whom you ask.
>>>The maximum command line length for the CreateProcess function is
>>>
>>>
>32767
>
>
>>>characters. This limitation comes from the UNICODE_STRING structure.
>>>CreateProcess is the core function for creating processes, so if you
>>>
>>>
>are
>
>
>>>talking directly to Win32, then that's the only limit you have to
>>>
>>>
>worry
>
>
>>>about. But if you are reaching CreateProcess by some other means,
>>>
>>>
>then
>
>
>>>the path you travel through may have other limits.
>>>If you are using the CMD.EXE command processor, then you are also
>>>subject to the 8192 character command line length limit imposed by
>>>CMD.EXE.
>>>If you are using the ShellExecute/Ex function, then you become
>>>
>>>
>subject
>
>
>>>to the INTERNET_MAX_URL_LENGTH (around 2048) command line length
>>>
>>>
>limit
>
>
>>>imposed by the ShellExecute/Ex functions. (If you are running on
>>>
>>>
>Windows
>
>
>>>95, then the limit is only MAX_PATH.)
>>>While I'm here, I may as well mention another limit: The maximum size
>>>
>>>
>of
>
>
>>>your environment is 32767 characters. The size of the environment
>>>includes the all the variable names plus all the values.
>>>Okay, but what if you want to pass more than 32767 characters of
>>>information to a process? You'll have to find something other than
>>>
>>>
>the
>
>
>>>command line. We'll discuss some options tomorrow.
>>>
>>>___________________________________________
>>>
>>>Chris Recoskie
>>>Software Designer
>>>Texas Instruments, Toronto
>>> http://eclipse.org/cdt
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>>-----Original Message-----
>>>>From: cdt-dev-bounces@xxxxxxxxxxx
>>>>
>>>>
>[mailto:cdt-dev-bounces@xxxxxxxxxxx]
>
>
>>>>
>>>>
>>>>
>>>On
>>>
>>>
>>>
>>>
>>>>Behalf Of Alex Chapiro
>>>>Sent: Friday, September 30, 2005 2:30 PM
>>>>To: CDT General developers list.
>>>>Subject: Re: [cdt-dev] Using nmake with managed builds
>>>>
>>>>I included the following command into make file (WinXP) :
>>>>
>>>>gcc -c -D$(TTTTT) myFile.c
>>>>
>>>>where TTTTT contained 7000 characters and  launched it. File
>>>>
>>>>
>myFile.c
>
>
>>>>was successfully compiled. Are you talking about this command line?
>>>>
>>>>Recoskie, Chris wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>Like Mikhail says, the make utility (whether it's GNU make, nmake,
>>>>>
>>>>>
>>>>>
>>>any
>>>
>>>
>>>
>>>
>>>>>make-alike will do) issues the commands via the OS shell.  The OS
>>>>>
>>>>>
>(in
>
>
>>>>>this case, windows) will generally have a limitation on the length
>>>>>
>>>>>
>of
>
>
>>>>>
>>>>>
>>>>>
>>>a
>>>
>>>
>>>
>>>
>>>>>command.
>>>>>
>>>>>Make and nmake themselves don't limit the length to my knowledge,
>>>>>
>>>>>
>but
>
>
>>>>>when they try to invoke the command via the shell, it fails due to
>>>>>
>>>>>
>>>>>
>>>the
>>>
>>>
>>>
>>>
>>>>>length issue.
>>>>>
>>>>>___________________________________________
>>>>>
>>>>>Chris Recoskie
>>>>>Software Designer
>>>>>Texas Instruments, Toronto
>>>>>http://eclipse.org/cdt
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>-----Original Message-----
>>>>>>From: cdt-dev-bounces@xxxxxxxxxxx
>>>>>>
>>>>>>
>>>>>>
>>>[mailto: cdt-dev-bounces@xxxxxxxxxxx]
>>>
>>>
>>>
>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>On
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Behalf Of Alex Chapiro
>>>>>>Sent: Friday, September 30, 2005 1:52 PM
>>>>>>To: CDT General developers list.
>>>>>>Subject: Re: [cdt-dev] Using nmake with managed builds
>>>>>>
>>>>>>If you are talking about make command line, you can for example
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>instead
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>of generating long command line , create temporary make file, fill
>>>>>>
>>>>>>
>>>>>>
>>>it
>>>
>>>
>>>
>>>
>>>>>>with your command line arguments and add include Makefile at the
>>>>>>
>>>>>>
>end
>
>
>>>>>>
>>>>>>
>>>>>>
>>>>>of
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>it, then launch make --file=<tempFile>, then remove <tempFile>. If
>>>>>>
>>>>>>
>>>>>>
>>>you
>>>
>>>
>>>
>>>
>>>>>>are taking about length limitation of commands in make file, I
>>>>>>
>>>>>>
>don't
>
>
>>>>>>know about it. Does it really exist?
>>>>>>
>>>>>>Sennikovsky, Mikhail wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hi,
>>>>>>>
>>>>>>>Cygwin make has also command length limitation, that actually has
>>>>>>>
>>>>>>>
>>>>>>>
>>>to
>>>
>>>
>>>
>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>do
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>with the command length limitation on windows in general.
>>>>>>>Please see the bugzilla# 72965 related to this.
>>>>>>>
>>>>>>>Thanks,
>>>>>>>Mikhail
>>>>>>>
>>>>>>>
>>>>>>>-----Original Message-----
>>>>>>>From: cdt-dev-bounces@xxxxxxxxxxx
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>[mailto:cdt-dev-bounces@xxxxxxxxxxx]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>On Behalf Of vladchuk@xxxxxxxxxxx
>>>>>>>Sent: Friday, September 30, 2005 9:32 PM
>>>>>>>To: Cdt-dev@xxxxxxxxxxx
>>>>>>>Subject: [cdt-dev] Using nmake with managed builds
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>Apparently, nmake  has a makefile command length limitation (is
>>>>>>>
>>>>>>>
>it
>
>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>1024
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>>chars?) so it is  impossible to use it with anything but trivial
>>>>>>>projects.
>>>>>>>Does anybody know  how toget around this problem?
>>>>>>>
>>>>>>>Thanks,
>>>>>>>vladchuk
>>>>>>>
>>>>>>>
>>>>>>>_______________________________________________
>>>>>>>cdt-dev mailing list
>>>>>>>cdt-dev@xxxxxxxxxxx
>>>>>>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>>>>>_______________________________________________
>>>>>>>cdt-dev mailing list
>>>>>>> cdt-dev@xxxxxxxxxxx
>>>>>>>https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>_______________________________________________
>>>>>>cdt-dev mailing list
>>>>>>cdt-dev@xxxxxxxxxxx
>>>>>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>_______________________________________________
>>>>>cdt-dev mailing list
>>>>>cdt-dev@xxxxxxxxxxx
>>>>>https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>_______________________________________________
>>>>cdt-dev mailing list
>>>>cdt-dev@xxxxxxxxxxx
>>>>https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>>
>>>>
>>>>
>>>_______________________________________________
>>>cdt-dev mailing list
>>>cdt-dev@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>>
>>>
>>>
>>>
>>>
>>_______________________________________________
>>cdt-dev mailing list
>>cdt-dev@xxxxxxxxxxx
>>https://dev.eclipse.org/mailman/listinfo/cdt-dev
>>
>>
>>
>Well, after reading all the responses and doing some investigation of my
>
>own it indeed appears that 8K (CMD shell limit) all we can get when
>using nmake.
>The solution is then (also suggested by Microsoft) to keep the paths as
>short as possible. I don't suppose it is possible to use any other shell
>
>with nmake.
>
>I wonder how MS gets around their own limitations when using nmake on
>large projects?
>
>vladchuk
>_______________________________________________
>cdt-dev mailing list
>cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
>
>
>
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top