2014-08-27 5 views
1

저는 QML 및 JavaScript 함수로 완전히 구현 된 Qt Quick 2로 응용 프로그램을 작성했습니다. (아래에 설명 된 main.cpp는 제외)QML 앱을 배포 할 때 SQLite 데이터베이스를 찾을 수 없습니다.

모델의 경우 LocalStorage 기능을 사용하고 있습니다. 내 응용 프로그램이 내 컴퓨터에서 제대로 작동하고 다른 컴퓨터로 내 보낸. 다른 컴퓨터에서는 응용 프로그램이 시작되지만 모든 dataBase 기능이 작동하지 않습니다.

나는 다음 로컬 스토리지의 기본 경로는 User\AppData\Local\MyAppName\QML\OfflineStorage\Databases

했다 그리고 그것은 setOfflineStoragePath();

하여 Main.cpp 사용하여 변경 될 수 있다는 것을 발견 :

int main(int argc, char *argv[]) { 
    QGuiApplication app(argc, argv); 

    QQmlApplicationEngine engine; 
    engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); 
    engine.setOfflineStoragePath(QString("./")); 

    return app.exec(); 
} 

가 다시이에 잘 작동 내 컴퓨터에서 실행되지만 다른 컴퓨터에서는 결과가 나타나지 않습니다. (데이터베이스 폴더는 .sqlite 및 .ini 파일과 함께 지정된 경로에 만들어집니다.)

다른 컴퓨터에서는 .ini 파일 만 생성되고 .sqlite 파일은 생성되지 않는 것으로 나타났습니다.

내 코드에 오류가 있다고 생각 하겠지만 Qt 작성자에서 내 프로젝트 (컴퓨터에 관계없이)를 컴파일 할 때마다 제대로 실행됩니다.

PS 감사 : 나는 컴파일러 메뉴 (대신 릴리스) 디버그의 conf를 사용하고

답변

2

(왼쪽 아래)이 sqlite를 사용하여 Qt는 응용 프로그램을 배포하는 동안, 당신은에 Qt5Sql.dll를 배포해야합니다 app 디렉토리와 qsqlite.dll (플러그인 디렉토리 예 : Qt5.3.1 \ 5.3 \ mingw482_32 \ plugins \ sqldrivers에 있음)은 <app directory>/sqldrivers입니다. 이것은 당신을위한 해결책일지도 모른다. 질문에서 나는 당신이 그렇게했는지 확신하지 못합니다.

+0

그와 비슷한 것이 었습니다. 당신이 묘사하는 그 라이브러리 중 일부가 있었지만, 그것들을 복사해서 붙여 넣기 만하면됩니다. QML 앱을 실제로 배포하는 것은 엉망입니다 ... – Glukose

관련 문제