У меня есть третья группа с предварительно скомпилированной библиотекой (.lib + .dll), которую я использую в своем приложении Qt.Копирование предварительно скомпилированных библиотек для создания каталога или добавления их в PATH в проекте QBS
В обычном (QMAKE) проект QtCreator У меня есть следующие строки в моем файле .pro:
LIBS += -L$$PWD/lib/release -ltag
INCLUDEPATH += include/taglib
Существует также вариант на вкладке Проекты -> Run -> «Добавить построить библиотеку путь поиска 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.
EDIT: Я попытался использовать cpp.systemRunPaths, который задокументирован here, но он не работает.
Похоже, что в последней версии QBS (1.7.1) «cpp.libraryPaths: [product.libLocation]» также добавляет его в системный путь. Приложение запускается нормально при запуске из QtCreator без копирования dll в каталог сборки. –