【发布时间】:2017-07-13 12:14:20
【问题描述】:
我使用 Qt Creator 创建了一个动态库,该库已包含在另一个 Qt 项目中,但是当我调用具有资源文件的函数时,例如读取资源中 .txt 的内容,它不起作用。
一旦我在库项目文件夹之外的另一个文件夹中创建了*.so、*.a 和qrc_resources.cpp 文件的动态库的构建,例如:
- 项目文件夹:
/home/username/Qt Project/library/ - 构建文件夹:
/home/username/Qt Project/build-library/
然后我将构建文件复制到库项目文件夹中,并从测试项目(Qt 应用程序项目)中,右键单击项目 -> 添加库 -> 外部库 -> 选择 .so 文件(从我刚刚复制的库项目文件夹)。
然后,在包含头文件并调用从qrc 资源中读取文件内容的函数后,它不起作用。
更新
我使用 QFile 检查它所在的资源文件是否存在,但出现此错误:QIODevice::read (QFile, ":/file.txt"): device not open
【问题讨论】:
-
请添加更多关于使用的技术和代码的信息。最好提供一个简单的可编译示例来检查您的方法。
-
我已经包含了更多信息,是否足够?
-
这不是一个可编译的例子,至少对于我听说的编译器来说不是。不过,您正在尝试访问测试应用程序中的库资源文件吗?阅读doc.qt.io/qt-5/resources.html#using-resources-in-a-library
-
不是默认选项 Compiled-In 吗?
-
我使用 QFile 检查它所在的资源文件是否存在,但我收到此错误:QIODevice::read (QFile, ":/file.txt"): device not open跨度>
标签: qt dynamic dll shared-libraries