dea*_*n44 6 c++ qt shared-libraries qt5
我有一个简单的类(来自Qt示例的模拟时钟),我想将其作为编译成共享库的测试.所以我最终想要的是拥有一个.DLL文件和.lib文件.
我所做的只是创建一个新项目,添加模拟时钟头和源文件,然后TEMPLATE = lib
在pro文件中配置.
然而,这只会创造一个.dll文件和我在文档中找到的文章不是很有帮助.
有谁知道如何解决这个问题,并最终得到dll和lib文件?
编辑1
这样做之后
#if defined(TEST)
#define AnalogClockPlug Q_DECL_EXPORT
#else
#define AnalogClockPlug Q_DECL_IMPORT
#endif
Run Code Online (Sandbox Code Playgroud)
然后简单地在我的主类前面添加AnalogClockPlug并在我的pro文件中定义TEST,qt生成了一个lib文件.
然而,我不确定我理解为什么,或者即使它是正确的.
Q_DECL_EXPORT与__declspec(dllexport)pragma完全相同(在Windows下).它使您的类的所有方法都转到dll'exports'表(dll二进制文件中的特殊部分).
Lib实用程序只读取dll导出,并生成所谓的"导入库" - 它不像通常的静态库,包含实际代码,但只是一堆记录,说明'这样的过程名称'可以在'这样的dll名称'.
如果您没有该pragma,则您的dll导出表为空,并且lib实用程序拒绝输出空的lib文件.就这样.
归档时间: |
|
查看次数: |
2713 次 |
最近记录: |