首先,我有“include_HEADERS ='我的公共(public) header '”和“libfoobar_la_SOURCES ='私有(private)源''私有(private) header '”。一切皆好。它编译/安装/链接。但是当我做“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*)
...

这从未在任何 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()
...

这是在未安装的专用头文件中。

我读了两次automake/libtool手册,但是我不知道如何从界面上删除这个废话?
或什么可以将此废话暴露给公共(public)api。如何控制导出到公共(public)api的内容?

最佳答案

寻找libtool选项-export-symbols。为其提供要导出的符号列表。默认情况下,libtool导出所有符号。

关于c++ - automake + libtool + c++ =非常肿的界面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4981588/

10-11 01:09