windows下编译dtkwidget

在不同MinGW环境下编译dtkcore和dtkwidget时,作者遇到了成功与失败的组合情况。在32位环境中,dtkwidget编译失败,而在64位环境中,dtkwidget编译成功,但需设置DTK_STATIC_LIB=YES。此外,一个简单的空项目在64位环境编译时无需此设置也可运行。
摘要由CSDN通过智能技术生成

参考

https://blog.csdn.net/yuxue321/article/details/109552210

步骤

  1. 安装官方qt5.12.3,安装时勾选64位版本、32位版本

  2. 下载glib和pkg,到mingw73_32目录下,解压到当前文件夹
    https://brltty.app/archive/Windows/MinGW/glib_2.34.3-1_win32.zip
    https://brltty.app/archive/Windows/MinGW/pkg-config_0.28-1_win32.zip

  3. mingw73_32目录,例如:D:\Qt\Qt5.12.3\5.12.3\mingw73_32

  4. 下载dtkcore、dtkwidget源码
    https://gitee.com/ch593030323/dtkwidget
    https://gitee.com/ch593030323/dtkcore

  5. 编译,这里用的时 MinGW 7.3.0-64bit
    在这里插入图片描述

    1. qmake dtkcore.pro DTK_STATIC_LIB=YES 
    2. mingw32-make
    3. mingw32-make install
    4. qmake dtkwidget.pro DTK_STATIC_LIB=YES 
    5. mingw32-make
    6. mingw32-make install
    
  6. 找到collections.exe,添加qt动态库可以正常运行

  7. 在这里插入图片描述

实际遇到的问题

  1. 5.12.3\mingw73_32编译dtkcore成功,编译dtkwidget时失败
  2. 5.12.3\mingw73_64编译dtkcore成功,编译dtkwidget时成功
  3. 5.12.3\mingw73_64 qmake时必须加DTK_STATIC_LIB=YES才能成功,dtkcore和dtkwidget的情况一样

一个简单的空项目

MinGW 7.3.0-64bit编译时不需要指定DTK_STATIC_LIB=YES即可运行
pro

QT += core gui multimediawidgets svg widgets dtkcore dtkwidget
TARGET = untitled5
TEMPLATE = app

DEFINES += DTK_STATIC_LIB
CONFIG += c++11

SOURCES += main.cpp

main.cpp

#include "dlabel.h"
#include <DApplication>

DWIDGET_USE_NAMESPACE
int main(int argc, char *argv[])
{
    DApplication a(argc, argv);
    DLabel label;
    lable.show();
    return a.exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值