[Scons-users] linker command under windows not working (too long)
Philipp Kraus
philipp.kraus at flashpixx.de
Sun Mar 31 18:08:56 EDT 2013
On shared lib I must modifiy SHLINKCOM but on MinGW seems to be an error in
correct escaping path names (see the platform/__init__.py script and
the class TempFileMunge)
the line in the method __call__
args = list(map(SCons.Subst.quote_spaces, cmd[1:]))
must be a correct path escaping eg
if "mingw" in env['platform'] :
args = [i.replace('\\', r'\\\\') for i in args]
because on MinGW toolset, that is run direct in Windows command line
the pathes are stored only with \ but must be \\
Phil
On 2013-03-31 17:44:05 +0200, Philipp Kraus said:
> I have set my linker command to
> envlib["LINKCOM"] = "${TEMPFILE('"+envlib["LINKCOM"]+"')}"
>
> the tempfile is set on default to Scons TempFileMunge
> and the prefix stores the @ char.
> But my object files are not passed to the file and the linker command
> is also gcc <o files>, so it is not modified with the tempfile
>
> I'm a little bit confused
>
> Thx
>
> Phil
>
>
> On 2013-03-31 14:34:26 +0200, Philipp Kraus said:
>
>> Is there an example for the callable class? Because which information
>> must be returned by the callable method?
>>
>>
>> Am 31.03.2013 um 03:17 schrieb Bill Deegan:
>> 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
>>
>>
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> http://four.pairlist.net/mailman/listinfo/scons-users
>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> http://four.pairlist.net/mailman/listinfo/scons-users
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130401/84860b2d/attachment.htm>
More information about the Scons-users
mailing list