QT 动态链接库的创建与使用

在vs中 新建工程 Qt Library

image

然后填写各种实现 最后编译会生成 *.dll *.lib 文件。

在另一个项目里使用该动态链接库文件的时候, 添加 *.h 头文件。 注意:不要在项目中 “添加已存在文件”的方式引入库头文件。 否则编译时会产生错误。“ error: definition of static data member 'A::staticMetaObjectExtraData' of dllimport'd class” 类似这样的错误。百度了一下:

http://bbs.csdn.net/topics/390026197

“隐式调用的时候我们一般在工程树中将需要的动态库头文件添加到工程中:
HEADERS  += mainwindow.h
            ScopeWidget.h
这样导致ScopeWidget.h的全局引用,由于从QWidget继承,所以编译的时候会生成moc_ScopeWidget.cpp文件,导致如上错误。
解决办法是将ScopeWidget.h从工程树中移除,只在用到的地方引用。”

按照上面的说法,只在用到库的地方,引用库头文件就可以了!

原文地址:https://www.cnblogs.com/nimo299/p/3436958.html