[Scons-users] using g++ vs. gcc for linking when used with	Repository()
    taf.undying at gmx.de 
    taf.undying at gmx.de
       
    Thu Aug  9 09:20:39 EDT 2012
    
    
  
I get some weird link errors and don't know if this is a bug or if I am doing something wrong. So maybe you can help.
Assuming the following, simple folder setup:
+-.
  +-local
  | +-sconstruct
  +-remote
    +-main.cpp
    +-sconstruct
main.cpp only contains a simple hello world example:
> #include <iostream>
> 
> int main(int argc, char* argv[])
> {
> 	std::cout << "Hello, World!" << std::endl;
> 	return 0;
> }
And the sconstruct files (both) only contain a simple target definition for a program:
> env = Environment()
> env.Program('test', ['main.cpp'])
Now, if I run "scons" in the "remote" directory, first g++ is used to compile "main.cpp" to "main.o" and then g++ is used again to link it to the executable "test".
After that, I run the command "scons -Y ../remote" in the "local" directory.
Then scons tries to link the executable again (although I think it really should not, as nothing has changed). But this time, it uses gcc instead of g++. This results in "undefined reference" errors, as the STL library is not linked.
Trying different varations of that setup, I can say that it basically boils down to whether the object file "main.o" is in the local directory or whether it is only remote.
If it is local, then g++ is used for linking, but if the object file is remote, then scons tries to link using gcc, which fails.
I have tested this on linux with the following scons versions:
> SCons by Steven Knight et al.:
>         script: v2.0.1.r5134, 2010/08/16 23:02:40, by bdeegan on cooldog
>         engine: v2.0.1.r5134, 2010/08/16 23:02:40, by bdeegan on cooldog
> Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 > The SCons Foundation
> SCons by Steven Knight et al.:
>         script: v2.2.0.issue-2856:2676:d23b7a2f45e8[MODIFIED], 2012/08/05 15:38:28, by garyo on oberbrunner-dev
>         engine: v2.2.0.issue-2856:2676:d23b7a2f45e8[MODIFIED], 2012/08/05 15:38:28, by garyo on oberbrunner-dev
>         engine path: ['/usr/lib/python2.7/site-packages/SCons']
> Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, > 2011, 2012 The SCons Foundation
Has anyone else seen this behaviour? And is this caused by something, that I am doing wrong? Or is it a bug?
Thanks in advance.
Daniel
    
    
More information about the Scons-users
mailing list