C++ .so 文件中的模板化函数

C++ templated functions inside .so file

本文关键字:函数 so 文件 C++      更新时间:2023-10-16

像Boost这样的库为函数和数据结构提供C++模板,通过.so文件提供。我读到.so文件包含只需要在运行时加载到内存中的机器代码。

在我看来,机器指令还必须具有某种形式的模板机制来支持此类库,我怀疑是否存在。

谁能解释一下这些库是如何编译和链接为模板的?

谁能解释一下这些库是如何编译和链接为模板的?

模板化代码不能从二进制文件导出,但非模板化代码(例如在基类、帮助程序函数等中使用(可以导出。

像 boost 这样的库不仅包含头文件中提供的模板化类和函数,还包含可以以二进制形式分发的部分。后者是构成.so文件的原因。