ide: GCC builder should now put libraries at the end of list

git-svn-id: svn://ultimatepp.org/upp/trunk@3261 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2011-03-04 08:49:43 +00:00
parent 1762408ff0
commit 0c4c0cf2f1

View file

@ -425,14 +425,21 @@ bool GccBuilder::Link(const Vector<String>& linkfile, const String& linkoptions,
lib.Add(linkfile[i]);
if(!HasFlag("SOLARIS")&&!HasFlag("OSX11"))
lnk << " -Wl,--start-group ";
for(i = 0; i < lib.GetCount(); i++) {
String ln = lib[i];
String ext = ToLower(GetFileExt(ln));
if(ext == ".a" || ext == ".so" || ext == ".dll" || ext == ".lib")
lnk << ' ' << GetHostPathQ(FindInDirs(libpath, lib[i]));
else
lnk << " -l" << ln;
}
for(int pass = 0; pass < 2; pass++)
for(i = 0; i < lib.GetCount(); i++) {
String ln = lib[i];
String ext = ToLower(GetFileExt(ln));
if(pass == 0) {
if(ext == ".a")
lnk << ' ' << GetHostPathQ(FindInDirs(libpath, lib[i]));
}
else
if(ext != ".a")
if(ext == ".so" || ext == ".dll" || ext == ".lib")
lnk << ' ' << GetHostPathQ(FindInDirs(libpath, lib[i]));
else
lnk << " -l" << ln;
}
if(!HasFlag("SOLARIS")&&!HasFlag("OSX11"))
lnk << " -Wl,--end-group";
PutConsole("Linking...");