c++ QTCreator 5.0 SQLite3_Open未定义引用

C++ QTCreator 5.0 SQLite3_Open Undefined Refernce

本文关键字:Open 未定义 引用 SQLite3 QTCreator c++      更新时间:2023-10-16

我是新的c++和试图链接到sqlite数据库。我正在遵循一个教程,我得到一个sqlite3_open错误未定义的引用。我做错了什么?

#include "database.h"
#include<stdio.h>
#include<sqlite3.h>
#include<stdlib.h>
database::database()
{
}
int database::test()
{
int retval;
// A prepered statement for fetching tables
sqlite3_stmt *stmt;
// Create a handle for database connection, create a pointer to sqlite3
sqlite3 *handle;
// try to create the database. If it doesnt exist, it would be created
// pass a pointer to the pointer to sqlite3, in short sqlite3**
retval = sqlite3_open("CC.sqlite",&handle);
// If connection failed, handle returns NULL
if(retval)
{
printf("Database connection failedn");
return -1;
}
printf("Connection successfuln");
return 1;
}

。箴文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-05-31T09:22:09
#
#-------------------------------------------------
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = CC_Herd_Manager
TEMPLATE = app

SOURCES += main.cpp
    mainwindow.cpp 
animal.cpp 
email.cpp 
owner.cpp 
phone.cpp 
equipment.cpp 
../CC_Cpp/cc_number.cpp 
../CC_Cpp/cc_date.cpp 
../CC_Cpp/cc_timestamp.cpp 
../CC_Cpp/cc_address.cpp 
database.cpp
HEADERS  += mainwindow.h 
animal.h 
email.h 
owner.h 
phone.h 
equipment.h
../CC_Cpp/cc_number.h 
../Cpp/CC_Cpp/cc_date.h 
../Cpp/CC_Cpp/cc_timestamp.h 
../Cpp/CC_Cpp/cc_address.h 
database.h
FORMS    += mainwindow.ui
OTHER_FILES += 
DB_Install
误差

/home/mongo/Cpp/CC_Herd_Manager/database.o:-1: In function `database::test()':
/home/mongo/Cpp/CC_Herd_Manager/database.cpp:23: error: undefined reference to     `sqlite3_open'
:-1: error: collect2: error: ld returned 1 exit status

如果您想链接到系统的sqlite版本(这可能是最好的),您必须在.pro文件中添加以下行:

LIBS += -lsqlite3

应该是这样。

您还可以下载sqlite源代码(他们称之为"合并")并将.c文件添加到您的项目中。如果这样做,您也应该使用下载的头文件。但是因为您在代码中使用了系统的头文件,所以我假设您希望使用系统的库版本,我推荐使用。