【发布时间】:2016-09-13 09:47:23
【问题描述】:
我有一个在我的 Qt 应用程序中使用的第三方预编译库 (.lib+.dll)。
在常规 (qmake) QtCreator 项目中,我的 .pro 文件中有以下几行:
LIBS += -L$$PWD/lib/release -ltag
INCLUDEPATH += include/taglib
“项目”选项卡 -> 运行 ->“将构建库搜索路径添加到 PATH”中还有一个选项,默认为开启。它确保将LIBS路径添加到系统PATH中,以便可以找到dll。
但是,我在 QBS 中找不到等价物。我有以下 qbs 文件,然后通过 Depends 将其包含并添加到我的 CppApplication 文件中:
DynamicLibrary {
name: "taglib"
files: "lib/release/tag.dll"
Export {
Depends { name: "cpp" }
cpp.includePaths: [".","include/taglib"]
cpp.libraryPaths: ["lib/release"]
cpp.dynamicLibraries: "tag"
}
Group {
name: "taglib"
fileTagsFilter: ["dynamicLibrary"]
qbs.install: true
}
}
链接器通过但应用程序在运行时找不到 DLL 并崩溃。 是否可以在运行时将 cpp.libraryPaths 添加到系统 PATH 中?
另一种选择是将 DLL 文件复制到构建目录,但我不知道如何为 QBS 中的预编译库执行此操作。
编辑:我尝试使用记录在 here 的 cpp.systemRunPaths 但它不起作用。
【问题讨论】: