Создать базу данных SQLite в Qt (C ++) - PullRequest
1 голос
/ 28 июля 2011

Я пытаюсь создать базу данных SQLite в Qt.Вот код, который у меня есть:

#include <QtCore/QCoreApplication>
#include <QtSql/QSqlDatabase>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("C:\\Users\\Tanner\\Desktop\\db.sqlite");

    return a.exec();
}

Однако он не работает.Это вывод, который я получаю:

C: \ Users \ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 8: ошибка: неопределенная ссылка на `imp __ ZN12QSqlDatabase17defaultConnectionE '

C: \ Users \ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 8: ошибка: неопределенная ссылка на ` imp __ZN12QSqlDatabase11addDatabaseERK7QStringS2 _ '

C: \ Users \ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 8: ошибка: неопределенная ссылка на ` imp __ ZN12QSqlDatabaseD1EE*

C: \ Users \ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 9: ошибка: неопределенная ссылка на ` imp __ ZN12QSqlDatabase15setDatabaseNameERK7QString '

C: \ Users \ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 11: ошибка: неопределенная ссылка на ` imp __ ZN12QSqlDatabaseD1Ev '

C: \ Users\ Tanner \ qt \ sqltest-build-desktop .. \ sqltest \ main.cpp: 11: ошибка: неопределенная ссылка на ` imp __ ZN12QSqlDatabaseD1Ev '

: - 1: ошибка: collect2: ld вернул 1 состояние выхода

Я уверен, что я делаю что-то не так, поскольку я впервые пытался работать с базой данных в C ++ / Qt.Любая помощь в создании базы данных с благодарностью!Я добавил дополнительную косую черту в путь к файлу, потому что компилятор продолжал жаловаться на экранирование символов.Могут ли дополнительные косые черты иметь с этим какое-то отношение?Если так, как я могу войти в путь, не думая, что пытаюсь убежать от следующего символа.

Ответы [ 2 ]

8 голосов
/ 29 июля 2011

После того, как он не заработал, я проверил на форуме сообщества Qt, и мне кажется, что мне не хватало только

QT + = sql

в .pro файле

Вот сообщение на форуме: http://developer.qt.nokia.com/forums/viewthread/8262/

3 голосов
/ 28 июля 2011

Ошибки, которые вы видите, являются не ошибками компилятора, а ошибками компоновщика. Сама ошибка связана не с SQLite, а с Qt. Скорее всего, вы не ссылаетесь на QtSql4.lib (4 может иметь другой номер версии). Это, скорее всего, устранит ошибки, которые вы видите.

В качестве ответа на ваш комментарий / вопрос вам не нужно (на уровне вашего приложения) вообще беспокоиться о SQLite. Поскольку вы используете функциональность SQL Qt, Qt позаботится об этом (и «скрыт»). Qt использует так называемые драйверы баз данных , которые, по сути, являются плагинами, которые он загружает в зависимости от того, что вы указали в своем коде. Так что драйвер SQLite в вашем случае.

Если этот драйвер не был создан при установке Qt, возможно, вам придется собрать его самостоятельно. Вы можете следовать инструкциям, которые вы можете найти по ссылке, которую я предоставил выше.

P.s. Вы правильно обработали проблему «выхода из персонажа». Это не причина ваших текущих проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...