Force to link against unused shared library

2020-02-10 03:49发布

问题:

Moved from gcc 4.5 to gcc 4.6, and now it does not link against libraries that are not used at compile time (i.e. if no symbols are imported from them).

However the purpose of those libraries is that they execute static constructors and thus make themselves available to the app at runtime (register their symbols).

Is there a way to force gcc to link with all libraries listed via -l?

回答1:

It looks like you need either -Wl,--no-as-needed to totally disable it. Or, --no-as-needed -lfoo --as-needed to disable "as-needed" just for libfoo.

Source: https://lists.ubuntu.com/archives/ubuntu-devel/2010-November/031991.html



标签: c++ linux gcc