在Qt (c++)中创建SQLite数据库
Create SQLite Database in Qt (C++)
我试图在Qt中创建一个SQLite数据库。这是我拥有的代码:
#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: qt sqltest-build-desktop . . sqltest main.cpp: 8:错误:imp__ZN12QSqlDatabase17defaultConnectionE'未定义引用
坦纳用户C: qt sqltest-build-desktop . . sqltest main.cpp: 8:错误:对'imp__ZN12QSqlDatabase11addDatabaseERK7QStringS2_'的未定义引用
坦纳用户C: qt sqltest-build-desktop . . sqltest main.cpp: 8:错误:对'imp__ZN12QSqlDatabaseD1Ev'的未定义引用
坦纳用户C: qt sqltest-build-desktop . . sqltest main.cpp: 9:错误:imp__ZN12QSqlDatabase15setDatabaseNameERK7QString'的未定义引用
坦纳用户C: qt sqltest-build-desktop . . sqltest main.cpp: 11:错误:未定义引用'imp__ZN12QSqlDatabaseD1Ev'
坦纳用户C: qt sqltest-build-desktop . . sqltest main.cpp: 11:错误:未定义引用'imp__ZN12QSqlDatabaseD1Ev'
:-1: error: collect2: ld returned 1 exit status
我确信我做错了什么,因为这是我第一次尝试在c++/Qt数据库工作。在创建数据库的任何帮助是非常感激的!我在文件路径中添加了一个额外的斜杠,因为编译器一直抱怨字符转义。额外的斜杠会不会与此有关?如果是这样,我怎样才能在输入路径时不让它认为我试图转义下一个字符呢?
没有得到它的工作后,我检查了Qt社区论坛,似乎所有我错过的是
QT += sql.pro文件
这里是论坛帖子:http://developer.qt.nokia.com/forums/viewthread/8262/
您看到的错误不是编译器错误,而是链接器错误。错误本身与SQLite无关,而是与Qt有关,您很可能没有链接到QtSql4。Lib(4可能是不同的版本号)。这样做最有可能使你看到的错误消失。
作为你的评论/问题的答案,你(在你的应用程序级别)根本不必担心SQLite。因为你使用Qt的SQL功能,这将被Qt照顾(和"隐藏"),Qt使用所谓的数据库驱动程序,本质上是插件,它加载基于你在代码中指定的。所以在你的例子中是一个SQLite驱动程序。
如果在您安装Qt时没有创建这个驱动程序,您可能必须自己构建它。你可以按照我上面提供的链接中的说明去做。
注。您已经正确处理了"字符转义"问题。这不是你当前问题的原因。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 使用std::multimap迭代器创建std::list
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 使用CMake创建QML插件
- 如何在c++中为模板函数实例创建快捷方式
- 查询SQLite数据库中的日期
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- Qt SQlite无法创建表
- 如何使用SQLite在qt中创建表?
- SqLite c++,可以创建数据库,但不能将 anthing 插入到表中
- 无法在C++中创建SQLite表(android)
- 在C++中创建 Sqlite 数据库
- 如何在内存数据库中创建多个SQLite
- 如何在Qt SQLite中创建多个连接
- 无法执行 sqlite SQL 文件来创建数据库
- 如何在Qt中创建SQLite数据库
- 为什么我不能在SQLite中的VIEW上创建触发器
- SQLite在QT创建查询
- 在Qt (c++)中创建SQLite数据库