通过.so文件提供像Boost这样为函数和数据结构提供C ++模板的库。我读到.so文件包含的机器代码只需要在运行时加载到内存中。
在我看来,机器指令还必须有某种形式的模板机制来支持这些库,我怀疑它们存在。
有人可以解释如何编译这些库并将其作为模板链接吗?
答案 0 :(得分:3)
有人可以解释如何编译这些库并将其作为模板链接吗?
模板化代码不能从二进制文件中导出,但是非模板化(例如在基类,辅助函数等中使用)可以。
boost这样的库不仅包含头文件中提供的模板化类和函数,还包含可以二进制形式分发的部分。后者构成.so
文件。