On Tue, May 09, 2006 at 01:34:36PM +0200, Abdelrazak Younes wrote: > Enrico Forestieri a écrit : > >On Mon, May 08, 2006 at 12:10:41PM -0500, Bo Peng wrote: > > > >>>I am letting the current build to be completed before doing anything > >>>else. I notice that the moc'ed files are being compiled but they are > >>>called moc_ModuleName.cc instead of ModuleName_moc.C as I was used > >>>with the auto tools. I hope this is accounted for. > >>>Then I also see that it is also trying to compile uic_ModuleName.cc > >>>and this is completely new to me... > >>They are generated and handled by scons automatically so you should > >>not have to worry about them. > > > >I don't think so. Everything goes smooth until the final link step > >which miserably fails with tons of undefined references. > > > >These are partly due to the ordering of libraries in the link command > >(-lz should go after -lboost_*), partly due to some missing > >libraries (-lstdc++ -lcygwin -laspell), but the vast majority is > >a problem with that "undefined reference to `vtable for ...'" thing. > > I managed to achieve the final linking by hand so I think it's only > that, nothing major.
Are you saying that .C files are recognized as C++ sources for you? Then, I am sorry, but SCons has wrong support for cygwin. For example, I see the following in site-packages/SCons/Util.py: if sys.platform == 'cygwin': # On Cygwin, os.path.normcase() lies, so just report back the # fact that the underlying Windows OS is case-insensitive. def case_sensitive_suffixes(s1, s2): return 0 else: def case_sensitive_suffixes(s1, s2): return (os.path.normcase(s1) != os.path.normcase(s2)) and also this one in site-packages/SCons/FS.py: # Cygwin's os.path.normcase pretends it's on a case-sensitive filesystem. _is_cygwin = sys.platform == "cygwin" if os.path.normcase("TeSt") == os.path.normpath("TeSt") and not _is_cygwin: def _my_normcase(x): return x else: def _my_normcase(x): return string.upper(x) It is utterly ridiculous that they are not able to spot the difference between .c and .C on Cygwin and they are able to on native Windows. -- Enrico