C++ 当整个库不可用时的解决方法

C++ 当整个库不可用时的解决方法,c++,linker,emscripten,C++,Linker,Emscripten,我试图在一个不支持-Wl,-whole library标志的环境中编译emscripten。如何强制编译器包含导出的符号?解决方案应尽可能满足以下特性: 可以应用于单个库我不想包含其他库中未使用的符号 是否可以自动生成,例如通过使用nm获取导出的符号表? 将使用函数和成员函数 我考虑过用如下方式计算一个文件: int x = (int)(&func_a)+(int)(&func_b)+...; 但它不适用于成员函数,成员函数不能强制转换为int,并且可以是私有的 你有什么想法吗

我试图在一个不支持-Wl,-whole library标志的环境中编译emscripten。如何强制编译器包含导出的符号?解决方案应尽可能满足以下特性:

可以应用于单个库我不想包含其他库中未使用的符号 是否可以自动生成,例如通过使用nm获取导出的符号表? 将使用函数和成员函数 我考虑过用如下方式计算一个文件:

int x = (int)(&func_a)+(int)(&func_b)+...;
但它不适用于成员函数,成员函数不能强制转换为int,并且可以是私有的

你有什么想法吗?

想法:

在链接所需库之前使用-wholelibrary标志 在添加之后-在列出其他LIB之前没有整个库,因此 需要完全链接的是,请尝试使用支持添加-导出动态标志的链接器添加-导出动态标志。 然后挖掘nm/objdump/exportmap路径以导出/构建链接信息,并使用链接信息来使用导出的地图和代码,以便可以在代码中模拟-Wl。