automake + libtool + c ++ = очень раздутый интерфейс

Сначала у меня есть «include_HEADERS = 'мои публичные заголовки'» и «libfoobar_la_SOURCES = 'private sources' 'private headers'». Все в порядке. Его компилируют / устанавливают / связывают. Но когда я делаю "nm -C my_instaed_lib.so "я получаю:

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*)
...

Это никогда не объявлялось ни в одном заголовке.

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()
...

Это частный не установленный заголовок.

Я дважды прочитал руководство по automake / libtool, но я не знаю, как удалить эту хрень из интерфейса ? Или что может выставить эту хрень на публичный api. Как контролировать, что экспортируется в общедоступный API?

5
задан SQLek 13 February 2011 в 00:24
поделиться