Использование SQLite с C в Windows - PullRequest
5 голосов
/ 22 августа 2010

Я пытаюсь разработать проект на C (в Dev-Cpp IDE) с использованием SQLite для хранения данных в Windows Vista.Я пытаюсь запустить этот код: Sqlite с C

Я переместил sqlite3.h в путь / lib.Но когда я пытаюсь запустить программу, я получаю много ошибок компоновщика, говоря «неопределенная ссылка на sqlite3_open» и т. Д.

Google дает мне команды Linux, которые не могут быть использованы здесь :(я через весь процесс использования sqlite с C, я очень новичок в таких вещах. Куда мне положить sqlite3.exe ??

Спасибо большое !!

Ответы [ 5 ]

3 голосов
/ 22 августа 2010

Я наконец понял свой ответ через: http://source.online.free.fr/Windows_HowToCompileSQLite

Приведенная выше ссылка создает файл .dll, который должен быть помещен в / bin, и один файл .a, который должен быть передан как опциякомпоновщику!

Спасибо, Дэвид !!

1 голос
/ 22 августа 2010

Документацию по SQLite можно найти на домашней странице проекта .Существует также краткое руководство по началу работы .

Однако, прежде чем эта информация окажется полезной, вам необходимо понять, как использовать компилятор и компоновщик для создания программы, использующей внешние библиотеки.Из вопроса, который вы задаете, кое-что из этого еще не ясно, поэтому, возможно, обзор приведен в следующем порядке:

Компилятор (который является MinGW релизом GCC от Dev-Распределение IDE Cpp) преобразует исходный текст, обычно находящийся в файлах .c и .h, в объектные файлы, содержащие машинный язык со значениями для некоторых символов, которые не указаны.Компоновщик (ld Gnu используется с MinGW) берет объектные файлы из своей командной строки, а также из библиотек (обычно это файлы .a, где параметр -lsqlite3 будет ссылаться на файл библиотеки с именем libsqlite3.a) и собирает их водин исполняемый файл.

Итак, чтобы использовать библиотеку SQLite, вам нужны заголовочные файлы в месте, где компилятор может их найти, чтобы удовлетворить директиву #include.И вам нужна соответствующая библиотека объектов, чтобы компоновщик мог удовлетворить все ссылки на функции в API SQLite.

Один рекомендуемый способ включить SQLite в проект - это скомпилировать его из объединения одного файла , и свяжите его непосредственно с вашей программой.Делая это таким образом, вы получаете библиотеку, которая была скомпилирована с тем же компилятором, что и остальная часть вашего приложения (что уменьшает вероятность незначительных проблем во время выполнения), и вам не нужно иметь файл DLL (или .so)в вашем дистрибутиве, чтобы вызвать проблемы для ваших пользователей.

Также рекомендуется иметь копию утилиты sqlite3.exe .Это полезная утилита , которая позволяет вам проверять файл базы данных SQLite и вносить специальные изменения.Просто поместите его где-нибудь в вашей переменной PATH, чтобы его можно было использовать из командной строки.

Если вам нужно использовать предварительно созданную DLL, то одна из них доступна из проекта SQLite.Это происходит скомпилированным способом, совместимым с MinGW.В частности, он использует ту же библиотеку времени выполнения C, что и MinGW.Обратите внимание, что он может быть не полностью совместим, если вы используете Visual Studio или другой компилятор для Windows.

1 голос
/ 22 августа 2010

sqlite3.h должен быть в вашем пути включения, а не в пути к вашей библиотеке.Файл библиотеки другой;если вы используете Dev-Cpp, он должен называться libsqlite3.a (файл .lib, упомянутый @Ignacio, предназначен для MSVC).После того, как вы поместили этот файл в путь к библиотеке, вам также нужно указать компилятору связать его, что должно быть в опциях компиляции вашего проекта Dev-Cpp.Вам не нужно sqlite3.exe вообще;это для случаев, когда вы хотите запрашивать файл базы данных вручную, а не программно.

0 голосов
/ 06 августа 2015

Чтобы использовать базу данных sqlite в gcc, выполните следующие действия ...

  1. загрузите файлы sqlites из здесь или мою резервную копию здесь (включая sqlite3.h)
  2. разархивируйте загруженный файл.
  3. скопировать в папку с исходным кодом (включая файл .c)
  4. Файлы sqlite3.dll и sqlite3.h должны быть вместе с вашими файлами .c
  5. образец исходного кода может бытьнашел здесь!www (точка) tutorialspoint.com/sqlite/sqlite_c_cpp(dot) htm
  6. Но из примера вы должны изменить #include на #include "sqlite3.h"
  7. , если ваш исходный файлЭто test.c, то процесс компиляции выглядит так:

    gcc -c test.c gcc -o test.exe test.o sqlite3.dll

Makefile

test.exe: test.o sqlite3.dll
        gcc -o test.exe test.o sqlite3.dll

test.o: test.c
        gcc -c test.c

Код :: Настройки блоков> Настройки компилятора> Настройки компоновщика> Добавить>, затем найдите sqlite3.dll и добавьте.Скопируйте sqlite3.h в папку с исходным кодом, и вы должны изменить #include "sqlite3.h".

0 голосов
/ 22 августа 2010

Вам не нужен sqlite3.exe. Вам нужна DLL, чтобы запустить ее, и вам нужно импортировать .lib, чтобы скомпоновать ее, чтобы построить.

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