June 22, 2004
In article <cb8vnl$1fec$2@digitaldaemon.com>, Walter says...
>1) Try using a linker response file, i.e. put the command in a file and link it with @filename.

That worked 100%. Thanks a bunch.

I am /so/ glad I have a custom build script. I was able to change its behavior in a very short space of time, to make it do exactly that. If I'd have been using make instead, I would have been stuck for days trying to get the makefile to get make to do that.

Cheers.
Jill


June 22, 2004
"Lars Ivar Igesund" <larsivar@igesund.net> wrote in message news:cb990p$1t8b$1@digitaldaemon.com...
> Actually you need to use lib.exe to make a static library (link.exe
> won't do that for you). Maybe lib.exe is able to make use of larger
> command lines (haven't tried, though).

The command line length limit for lib is what the Win32 command prompt shell limit is (which varies depending on the version of Windows). But, each time one runs lib one can add to the library, so any long command can be broken up into multiple invocations of lib. Lib can also take a response file that has no arbitrary limit.


June 22, 2004
On Tue, 22 Jun 2004 06:55:54 +0000 (UTC), Arcane Jill <Arcane_member@pathlink.com> wrote:
> I just got this error from the DMD linker: "The input line is too long".
>
> True, my command line is pretty long - currently it stands at 8482 characters -
> and is likely to get MUCH longer, as my current (Unicode) project progresses.
>
> This is a showstopper. What do I do? And is there any chance that the hard-coded
> limit on the length of DMD's linker's command line could be lifted? Or at least,
> increased to something practically unreachable like a megabyte?

My link command looks like this..

d:\D\dmd\bin\dmd.exe -g "$(IntDir)\*.obj" -of"$(OutDir)\$(WkspName).exe"

Where $(IntDir) is replaced by the 'intermediate directory' which is where all my obj files get put when I build them. where $(OutDir) and $(WkspName) are replaced with the path and filename of the output executable.

The downside to this method being if there are any obj files in the IntDir that I do not need they get linked anyway. But...

As this is an VC++ utility project IntDir is actually d:\d\src\<project>\Debug regardless of where I pull the source files from i.e. d:\d\etc\crypto\hash\ d:\d\src\build\ etc

So there aren't typically any excess obj files.

Which of course means that I also have several copies of tiger.obj, one for each project that includes it, not optimal, but not a huge waste.

Regan.

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
June 22, 2004
Arcane Jill wrote:
> I am /so/ glad I have a custom build script. I was able to change its behavior
> in a very short space of time, to make it do exactly that. If I'd have been
> using make instead, I would have been stuck for days trying to get the makefile
> to get make to do that.

It's trivial in SCons as well.

--Steve
1 2
Next ›   Last »