Qt 不能运行错误集合 常见错误集合

一、缺少 qt platform 依赖库;

qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

少平台 dll 库,如windows 平台

将 类似 你的路径 D:\ProgramData\Qt\5.12.4\msvc2017_64\plugins\platforms

拷贝到 运行目录;其实用到的是 qwindows.dll或 qwindowsd.dll

二 、缺少 qt sqldrive依赖库

WARNING: QSqlDatabase: QSQLITE driver not loaded

少 sqldrive

将 类似 你的路径 D:\ProgramData\Qt\5.12.4\msvc2017_64\plugins\sqldrivers

拷贝到 运行目录;

以上二种也可以通过cmake 实现

指定一组要导入的定制插件(注意:此宏仅从静态Qt构建导入插件。在共享版本上,无效。)

qt5_import_plugins(target
                   [INCLUDE plugin ...]
                   [EXCLUDE plugin ...]
                   [INCLUDE_BY_TYPE plugin_type plugin ...]
                   [EXCLUDE_BY_TYPE plugin_type])
指定一组要导入的定制插件。可选参数:INCLUDE,EXCLUDE,INCLUDE_BY_TYPE,和EXCLUDE_BY_TYPE,可多次使用。

此CMake命令在Qt 5.14中引入。

    INCLUDE -可用于指定要导入的插件列表。
    EXCLUDE -可用于指定要排除的插件列表。
    INCLUDE_BY_TYPE -可用于覆盖要为特定插件类型导入的插件列表。
    EXCLUDE_BY_TYPE-可用于指定要排除的插件类型;那么就不会导入该类型的插件。

Qt提供插件类型,例如imageformats,platforms,和sqldrivers。

如果qt5_import_plugins()未调用,那么目标会自动链接到一组默认的插件,针对目标链接到的每个Qt模块。有关更多信息,请参见target_link_libraries。

每个插件都带有一个C ++存根文件,该文件会自动初始化该插件。因此,任何链接到插件的目标都会将此C ++文件添加到其中SOURCES。

注意:此宏仅从静态Qt构建导入插件。在共享版本上,无效。

例子

add_executable(myapp main.cpp)
target_link_libraries(myapp Qt5::Gui Qt5::Sql)
qt5_import_plugins(myapp
    INCLUDE Qt5::QCocoaIntegrationPlugin
    EXCLUDE Qt5::QMinimalIntegrationPlugin
    INCLUDE_BY_TYPE imageformats Qt5::QGifPlugin Qt5::QJpegPlugin
    EXCLUDE_BY_TYPE sqldrivers
)

在上面的代码片段中,执行程序myapp发生了以下情况:

    将Qt5::QCocoaIntegrationPlugin导入到myapp中。
    该Qt5::QMinimalIntegrationPlugin插件不会自动导入到myapp中。
    的默认插件列表imageformats被覆盖为仅包括Qt5 :: QGifPlugin和Qt5 :: QJpegPlugin。
    所有sqldrivers插件均不会自动导入。

三、windows 平台 ,缺少 VC 运行库

可以下载这个安装

VisualC++AIOv2019.05.21-C++文档类资源-CSDN下载

四、 could not be loaded: Cannot load library 提示缺少依赖库

could not be loaded: Cannot load library 如果是你自己编译出的库不能被 loaded ,还是少依赖,具体还是要查;

如指明了缺少文件名,可以根据目录就找到相应依赖库拷贝过来就可以;

windows 平台可以通过 log 和 depends.exe来查;

linux 平台可以通过命令行查依赖

1.查看依赖的库: objdump -x xxx.so | grep NEEDED

2.查看可执行程序依赖的库: objdump -x 可执行程序名 | grep NEEDED

3.查看缺少的库: ldd xxx.so

缺少库存有两种解决方案

1,加入到环境变量 ,如果是文件夹适合此方法;

2,直接拷贝到当前目录;

还有一种情况是当前库的所在目录不对,移动到合适的文件夹,此文件夹含有它依赖的库,

但不能拷贝它依赖的库,否则就存在二份,也会有问题;

Five: error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl CTWindowAdvisor::metaObject(void)const

这种情况是因为 CTWindowAdvisor.h 头文件没有加入到  MOC_H_FILES 列表中,或者是 CTWindowAdvisor.h 忘记添加  Q_OBJECT

Five: QLayout: Attempting to add QLayout  " to QGroupBox "

which already has a layout

QLayout:正在尝试将QLayout“”添加到已具有布局的

原因:

QVBoxLayout* vLayout = new QVBoxLayout(this);

就已经在构造函数中为 QVBoxLayout 的Qwidget对象设置了布局

上面这行代码相当于:

QVBoxLayout* vLayout = new QVBoxLayout();
this->setLayout(vLayout);

如后面,再使用

this->setLayout(vLayout);

//or
this->addLayout(vLayout);

 会出现上面提示;

six :QObject::connect: Cannot connect (null)

这是ui没有被 初始化的,

connect(m_comboBoxSeries

m_comboBoxSeries == nullptr

MSVC2017 64bit has configuration issues which might be the root cause for this problem.

When executing step "qmake"

这个后面发现是文件保存的格式有问题,竟然 是 Unicode ,另存为 ANSI 解决

小结

总之具体问题,还需要具体的分析,不断遇到问题,不能解决问题,不断的成长;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恋恋西风

up up up

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值