Qt アプリケーションで使用するサード パーティのプリコンパイル済みライブラリ (.lib+.dll) があります。
通常の (qmake) QtCreator プロジェクトでは、.pro ファイルに次の行があります。
LIBS += -L$$PWD/lib/release -ltag
INCLUDEPATH += include/taglib
[プロジェクト] タブ -> [実行] -> [ビルド ライブラリの検索パスを PATH に追加] にもオプションがあり、デフォルトでオンになっています。LIBS パスがシステム PATH に確実に追加されるため、dll を見つけることができます。
ただし、QBS で同等のものを見つけることができません。次の qbs ファイルがあります。これは、CppApplication ファイルの Depends を介してインクルードおよび追加されます。
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 を見つけることができず、クラッシュします。実行時にシステム PATH に cpp.libraryPaths を追加することは可能ですか?
別のオプションは、DLL ファイルをビルド ディレクトリにコピーすることですが、QBS でプリコンパイルされたライブラリに対してそれを行う方法がわかりません。
編集:ここに記載されている cpp.systemRunPaths を使用しようとしましたが、機能しません。