[Scons-users] How do I specify special link options?
Peter Steele
pwsteele at gmail.com
Tue Aug 14 14:49:16 EDT 2012
That did the trick. Thanks.
Peter
-----Original Message-----
From: scons-users-bounces at scons.org [mailto:scons-users-bounces at scons.org]
On Behalf Of Evan Driscoll
Sent: Tuesday, August 14, 2012 11:34 AM
To: scons-users at scons.org
Subject: Re: [Scons-users] How do I specify special link options?
If you want GCC to pass an object to the linker, you use -Wl. So try adding
'-Wl,--unresolved-symbols=ignore-in-object-files' to LINKFLAGS.
(',' in a -Wl flag is translated to a space, so you could also probably say
'-Wl,--unresolved-symbols,ignore-in-object-files'. The usual place I've seen
this used is when specifying --rpath, but SCons provides a way to do that
directly.)
Evan
On 08/14/2012 01:27 PM, Peter Steele wrote:
> I am working with a shared library for which I know there will be
> unresolved externals when I link it with an application. I tried to
> create a SConstruct file for my app and include the option
>
> --unresolved-symbols=ignore-in-object-files
>
> for the linker. I could not get it to work right though. My first
> attempt was to do this:
>
> env = Environment(CCFLAGS =
> ['--unresolved-symbols=ignore-in-object-files'])
>
> but this link option gets interpreted by gcc as an invalid option when
> specified in this manner. I instead tried
>
> env = Environment(LINKFLAGS =
> ['--unresolved-symbols=ignore-in-object-files'])
>
> but this did not solve the problem either. After some research I tried
> this approach:
>
> env = Environment(LINK = ['/usr/bin/ld'], LINKFLAGS =
> ['--unresolved-symbols=ignore-in-object-files'])
>
> which forces Scons to use ld intead of gcc for the link command. This
> solved the problem-the link option was finally accepted as valid-but
> the link ended up failing with
>
> /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to
> 00000000004002d0
>
> I did some research on this message and discovered it was related to a
> missing symbol that's normally defined in /usr/lib/crt1.o that doesn't
> get included when ld is used for linking instead of gcc.
>
> My impression is that this is getting way too complicated for what I
> need to do. Am I missing something obvious? How can I get this link
> option to work without hacking up my SConstruct file.
>
> Peter
>
>
>
> _______________________________________________
> 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
More information about the Scons-users
mailing list