www.digitalmars.com         C & C++   DMDScript  

c++.windows.16-bits - Linker line too long?

reply Mark Evans <mevans zyvex.com> writes:
Walter,

Just adding one more source file to my make cased the linker to bomb.

All the objects build, but the linker refuses to link because "command line too
long".  This seems like a silly restriction.  How can I work around it?

Mark




SMAKE  Program Maintenance Utility (Console) Version 7.50
Copyright (c) 1994-1995 Innovative Data Concepts Incorporated
Copyright (c) 1994-2001 Digital Mars        
All Rights Reserved

	del obj\ARGCARGV.obj
	del obj\auto.obj
	del obj\circbuf.obj
	del obj\dispatch.obj
	del obj\parkplug.obj
	del obj\parseblk.obj
	del obj\spmcalls.obj
	del obj\winio.obj
	del obj\wmhandlr.obj
	del obj\parkplug.res
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\ARGCARGV.obj
ARGCARGV.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\wmhandlr.obj
wmhandlr.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\winio.obj winio.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\parkplug.obj
parkplug.c
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\circbuf.obj circbuf.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\dispatch.obj
dispatch.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\parseblk.obj
parseblk.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\spmcalls.obj
spmcalls.c 
	SC -c -D_WINIO=1 -D_parkplug -mluw -gl -p -r -Jm -WA -S -5 -a2
-IC:\DigMars\dm\include;C:\DigMars\dm\include\win16 -oobj\auto.obj auto.c 
	RCC parkplug.rc -oobj\parkplug.res
SMAKE fatal error: syntax error: "LINK /CO /L /DETAILEDMAP /PACKF /XU /A:16
obj\ARGCARGV.obj  obj\wmhandlr.obj  obj\winio.obj  obj\parkplug.obj 
obj\circbuf.obj  obj\dispatch.obj  obj\parseblk.obj  obj
\spmcalls.obj  obj\auto.obj,ParkPlug.exe,obj\parkplug.map,SPMAPI.LIB  LIBW.LIB 
COMMDLG.LIB  SHELL.LIB  WINSOCK.LIB,parkplug.def,obj\parkplug.res; ": command
line too long
Stopping.
Nov 28 2001
next sibling parent Jan Knepper <jan smartsoft.cc> writes:
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Mark Evans wrote:

 Just adding one more source file to my make cased the linker to bomb.

 All the objects build, but the linker refuses to link because "command line
too long".  This seems like a silly restriction.  How can I work around it?

A Linker reponse file. I am pretty sure there is one around on the newsgroup. If not... Let me attach a simple example: Jan
Nov 28 2001
prev sibling parent "Walter" <walter digitalmars.com> writes:
"Mark Evans" <mevans zyvex.com> wrote in message
news:1103_1006974829 evans...
 Walter,

 Just adding one more source file to my make cased the linker to bomb.

 All the objects build, but the linker refuses to link because "command

it?
 Mark

The restriction is one caused by the win32 command line processor. I agree it's silly, but Microsoft never listens to my suggestions <g>. As Jan pointed out, the solution is to use a response file. -Walter
Nov 28 2001