在 Qt 中使用资源创建和使用动态库
Create and Use Dynamic Library with Resources in Qt
我使用 Qt Creator 创建了一个动态库,我已经将其包含在另一个 Qt 项目中,但是当我使用资源文件调用函数时,例如读取资源中 .txt 的内容,它不起作用。
一旦我有了动态库的构建,它在库项目文件夹外的另一个文件夹中创建了 *.so
、*.a
和 qrc_resources.cpp
文件,例如:
- 项目文件夹:
/home/username/Qt Project/library/
- 构建文件夹:
/home/username/Qt Project/build-library/
然后我将构建文件复制到库项目文件夹中,并从测试项目(Qt 应用程序项目)中右键单击该项目 -> 添加库 -> 外部库 -> Select .so 文件(来自我刚刚复制的库项目文件夹)。
然后,在包含头文件并调用从 qrc
资源读取文件内容的函数后,它不起作用。
更新
我使用 QFile 检查它所在的资源文件是否存在,但出现此错误:QIODevice::read (QFile, ":/file.txt"): device not open
以后
所以我能够通过使用 QFile
对象而不是 ifstream
对象来打开和读取文件来解决问题。
我使用 Qt Creator 创建了一个动态库,我已经将其包含在另一个 Qt 项目中,但是当我使用资源文件调用函数时,例如读取资源中 .txt 的内容,它不起作用。
一旦我有了动态库的构建,它在库项目文件夹外的另一个文件夹中创建了 *.so
、*.a
和 qrc_resources.cpp
文件,例如:
- 项目文件夹:
/home/username/Qt Project/library/
- 构建文件夹:
/home/username/Qt Project/build-library/
然后我将构建文件复制到库项目文件夹中,并从测试项目(Qt 应用程序项目)中右键单击该项目 -> 添加库 -> 外部库 -> Select .so 文件(来自我刚刚复制的库项目文件夹)。
然后,在包含头文件并调用从 qrc
资源读取文件内容的函数后,它不起作用。
更新
我使用 QFile 检查它所在的资源文件是否存在,但出现此错误:QIODevice::read (QFile, ":/file.txt"): device not open
以后
所以我能够通过使用 QFile
对象而不是 ifstream
对象来打开和读取文件来解决问题。