Я пытаюсь построить проект QML в Visual Studio с помощью CMake.Вот мои файлы:
CMakeLists.txt
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
project(MyProject)
find_package(Qt5 COMPONENTS Quick Core Network)
find_package(Qt5QuickCompiler)
qtquick_compiler_add_resources(RESOURCES qml.qrc)
add_executable(MyExec main.cpp ${RESOURCES})
qt5_use_modules(MyExec Quick Core Network)
main.qml
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtPositioning 5.11
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
}
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char* argv[]) {
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
qml.qrc
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>
Когда я собираю и запускаю это, я получаю это:
QQmlApplicationEngine failed to load component
qrc:/main.qml:3 plugin cannot be loaded for module "QtPositioning": Cannot load library D:\Dev\MyProject\build\bin\qml\QtPositioning\declarative_positioningd.dll: The specified module could not be found.
Однако, когда я иду в этот каталог, там присутствует декларативное_позиционированиеd.dll.Единственное, что я могу найти в сети, похожую на эту проблему, это здесь .Они говорят, что решили свою проблему с помощью отсутствующего файла Qt5PositionQuick.dll, но этот файл также присутствует в соответствующих установочных каталогах Qt5, и я также попытался поместить его в папку с Declarative_positioningd.dll безрезультатно.
Эта проблема относится только к QtPosition, другие попытки импорта QML, которые я пытался выполнить, работают нормально (кроме QtLocation, которая зависит от QtPosition).