FANGYEFENG

Mar 09, 2024

关于在动态库中引用qrc资源的问题

最近在写新的QT项目时,使用QML来开发界面,我将QML文件都放在qrc资源系统中,以前我都是将qrc放在可执行文件中,这次我试图放在动态库上,可执行再去引用这些qrc路径。为什么要这么做呢?因为我希望让开发更清晰一些,有关界面的QML文件及相关的JS逻辑都统一放在一个文件夹上,这样看起来舒服些。但是途中我却遇到了很奇怪的问题,我的可执行文件引用不到动态库上的qrc路径,引用代码是下面这行在main入口函数的语句

1
const QUrl url(u"qrc:/Main.qml"_qs);

执行的时候报错找不到qrc:/Main.qml这个文件,遂看网上的资料寻求帮助,可是没有人遇到跟我一样的情况的,所以我感觉应该是我自己的问题。后面我开始在这个动态库上写一个类,开一个接口给可执行文件使用,结果这次成功了。因此我发现了是什么原因了,也就是动态库在没有任何符号给可执行文件引用的情况下,可执行文件并不依赖于这个动态库了,启动的时候也就不会隐式加载这个动态库,造成了qml文件找不到这种后果。我自以为qml文件有引用到这个动态库就会加载了。

OLDER > < NEWER