Zitat von Sanatan Rai <sana...@gmail.com>:
The `global initialisation' stuff is just the following pattern:
namespace {
helper1 *helper1Creator()
{
return (new helper1());
}
const bool helper1Registered = factory::instance().registerhelper
("helper1", helper1Creator);
}
So when I put the helpers in a separate library, these lines are not
called.
Then you don't understand the implications of static libraries, yet.
Use the following from "man ld":
--whole-archive
For each archive mentioned on the command line after the
--whole-archive option, include every object file in the archive in
the link, rather than searching the archive for the required object
files. This is normally used to turn an archive file into a shared
library, forcing every object to be included in the resulting
shared library. This option may be used more than once.
Two notes when using this option from gcc: First, gcc doesn't know
about this option, so you have to use -Wl,-whole-archive. Second,
don't forget to use -Wl,-no-whole-archive after your list of
archives, because gcc will add its own list of archives to your
link and you may not want this flag to affect those as well.
HS
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake