[Scons-users] linker command under windows not working (too long)

Bill Deegan bill at baddogconsulting.com
Sat Mar 30 21:17:23 EDT 2013


Won't TEMPFILE work for this?

A callable class. You can set an Environment variable to this,
then call it with a string argument, then it will perform temporary
file substitution on it. This is used to circumvent the long command
line limitation.

Example usage:
env["TEMPFILE"] = TempFileMunge
env["LINKCOM"] = "${TEMPFILE('$LINK $TARGET $SOURCES')}"

By default, the name of the temporary file used begins with a
prefix of '@'. This may be configred for other tool chains by
setting '$TEMPFILEPREFIX'.

env["TEMPFILEPREFIX"] = '-@' # diab compiler
env["TEMPFILEPREFIX"] = '-via' # arm tool chain

-Bill


On Sat, Mar 30, 2013 at 11:26 AM, Philipp Kraus
<philipp.kraus at flashpixx.de>wrote:


> **

>

> Hi,

>

>

> thanks for this idea but I don't use the env.Object call, I call

> env.SharedLibrary direct in the build script, so the *.o file is created by

> the dependency graph that is build by Scons.

>

> So I need to change my script for the MinGW toolset and create the object

> files first and referenced them via the file. It should be a IMHO a

> "hacking solution".

>

>

> Thanks a lot, so I can test my build script

>

>

> Phil

>

>

>

> On 2013-03-30 19:07:42 +0100, Brady Johnson said:

>

>

>

> You can use response files, (supported by both gcc and msvc) which allows

> you to list several object files, etc in a file, then refer to that file on

> the command line prepending it with the '@' symbol. Here is a

> question/answer on Stack Overflow that addresses this:

> http://stackoverflow.com/q/15242177/1158895

>

>

> Notice, though that SCons wont read what's in the response file, so

> dependency checking wont work as expected. I addressed this in my answer to

> the Stack Overflow question.

>

>

> Hope that helps,

>

>

> Brady

>

>

>

>

> On Sat, Mar 30, 2013 at 3:07 PM, Philipp Kraus <philipp.kraus at flashpixx.de

> > wrote:

>

> Hello,

>

>

> I try to build Irrlicht engine with mingw toolset under Scons. The

> compiler calls works well, but the last linker command to build the shared

> library creates the error, that the command length is reached.

>

> MS describe the probleme here http://support.microsoft.com/kb/830473/en-us

>

> The command shows:

>

>

> g++ -shared -o Irrlicht.dll <here all *.o

> files> -Wl,--out-implib,libIrrlicht.a

>

>

> I don't know how I can solve this problems. The problem exists only with

> the MinGW toolset under MSVC the problem does not exists.

>

>

> Thanks for help

>

>

> Phil

>

>

>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130330/b0bde742/attachment.htm>


More information about the Scons-users mailing list