sqlite3.h (error LNK2019: ссылка на неразрешенный внешний символ sqlite3_open_v2 в функции main)

Рейтинг: 0Ответов: 1Опубликовано: 23.01.2023

Программа не компилируется в Microsoft Visual Studio, sqlite3.h подключил правильно.

#include <iostream>
#include <string>
#include <Windows.h>
#include <dpapi.h>
#include <lmcons.h>
#include <sqlite3.h>

using namespace std;


string getUserNameWindows() {
    string userName;
    char username[UNLEN + 1];
    DWORD username_len = UNLEN + 1;
    GetUserName((TCHAR*)username, &username_len);
    for (auto ln : username) {
        if (ln != 0 && ln != -52) {
            userName += ln;
        }
    }
    return userName;
}

int main() {
    string user = getUserNameWindows();
    string DBpath = "test.db";
    sqlite3 *db;
    int status = sqlite3_open_v2(DBpath.c_str(), &db, SQLITE_OPEN_READONLY, NULL);
    if (status != SQLITE_OK) {
        cout << "DB opened!!!";
    } else cout << "DB error...";

    system("pause");
    return 0;
}

Вывод программы:

1>project.obj : error LNK2019: ссылка на неразрешенный внешний символ sqlite3_open_v2 в функции main.
1>C:\Users\win\Desktop\project\x64\Debug\project.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
1>Сборка проекта "project.vcxproj" завершена с ошибкой.
========== Сборка: успешно выполнено — 0 , со сбоем — 1, в актуальном состоянии — 0, пропущено — 0 ==========
========== Прошло 00:05,340 ==========

Ответы

▲ 1

Спустя пол дня всё-таки удалось решить данную проблему. Пришлось скачивать .dll и .def с офф. сайта https://www.sqlite.org/download.html , затем всё это превратить в .lib https://unick-soft.ru/article.php?id=56 и затем уже добавить в проект и после #include "sqlite3.h" добавить #pragma comment(lib, "sqlite3.lib")