automake+libtool+c++ = very bloated interface -


first have "include_headers = 'my public headers'" , "libfoobar_la_sources = 'private sources' 'private headers'". fine. compile/install/link. when "nm -c my_instaed_lib.so" get:

00005be0 t yyget_debug(void*) 00005b00 t yyget_extra(void*) 00005bf0 t yyset_debug(int, void*) 00005bb0 t yyset_extra(fm4::leximpl*, void*) 00005b40 t yyget_column(void*) 00005b10 t yyget_lineno(void*) 00006180 t yyset_column(int, void*) 000061e0 t yyset_lineno(int, void*) ... 

this never declared in header.

000091f0 t fm4::prcimpl::collectmacro() 000089d0 t fm4::prcimpl::collectquote() 00008870 t fm4::prcimpl::collectcomment() 00009350 t fm4::prcimpl::collect() 000093f0 t fm4::prcimpl::process() 00008700 t fm4::prcimpl::prcimpl(fm4::processor*) 00008590 t fm4::prcimpl::prcimpl(fm4::processor*) 00009970 w fm4::prcimpl::~prcimpl() 00009a00 w fm4::prcimpl::~prcimpl() ... 

this in private not installed header.

i read automake/libtool manual twice, don't know how strip crap interface? or can expose crap public api. how control exported public api?

look libtool option -export-symbols. give list of symbols want export. default, libtool exports symbols.


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -