C++ Debug: VS2019动态链接库无法生成.lib文件


前言

最近想对深度学习底层原理进行实现,包括反向传播,权重更新,激活函数,损失函数等,所以用C++ VS2019创建一个动态链接库 - DTTNN来实现,并使用Google Test测试框架对DTTNN项目实现进行测试 - GTestDTTNN。


DTTNN项目无法生成.lib 文件

在编译生成GTestDTTNN时出现编译错误,说是无法找到DTTNN.lib。确实,目前的DTTNN项目只是初始阶段,仅实现了加法运算和乘法运算的正向与反向传播方法,且使用了模板类技术来实现,所以不需要导出类或者方法。但是要像生成.lib文件,需要有导出的函数或者类才可以。

导出类或者方法的定义:

_declspec(dllexport)

还有一点要特别注意,那就是如果是想导出整个类,要将上述导出代码放置在类的定义关键字-class与类名之间,不能放在定义类的关键字-class之前,否则也无法生成.lib 文件。

正确的导出类定义如下:

class _declspec(dllexport) Test;

错误的导出类定义如下:

 _declspec(dllexport) class Test;

总结

之前没有注意过这些细节,创建的项目也都是仿照之前的实现来做的,所以没有仔细考虑过这些细节的问题,这次刚好遇到,在网上也没有找到相应的问题解决方法,这里分享给大家,或许还有其他方法,如果有同学能够分享,多谢大家!

Guess you like

Origin blog.csdn.net/DU_YULIN/article/details/120406835