加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么Eigen不需要链接.lib或dll?

发布时间:2020-12-14 02:04:53 所属栏目:Windows 来源:网络整理
导读:最近,我编译了Eigen3并用它在 Windows上做了一些线性代数任务. 但我想知道为什么Eigen3不需要链接额外的lib或DLL(我只需要包含它的头) Eigen是否在编译时进行全部计算?还是我想念一些东西? 如果是这样,这种类的库的类别名称是什么 解决方法 与所有C模板库
最近,我编译了Eigen3并用它在 Windows上做了一些线性代数任务.

但我想知道为什么Eigen3不需要链接额外的lib或DLL(我只需要包含它的头)

Eigen是否在编译时进行全部计算?还是我想念一些东西?

如果是这样,这种类的库的类别名称是什么

解决方法

与所有C模板库一样,Eigen完全包含在头文件中,并且每次都插入到源文件中.因此它不包含任何cpp文件,这些文件将被编译为dll.

当在标头中声明类并在cpp文件中实现类时,会发生dll / lib和header之间的区别.然后,实现部分始终相同,可以从dll加载.

但是,在模板库中,类尚未完成,因为它们依赖于传递给它们的模板参数.例如如果您编写Matrix< float,17,19>,则会创建一个新的完整类,其中包含一个全新的实现,无法从dll加载.

这也使得c程序使用了很多模板(比如许多不同的固定大小的矩阵),非常大.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读