Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
A_Crash
4 / 4 / 0
Регистрация: 03.08.2013
Сообщений: 9
#1

Проблемы при компоновке error LNK2019 - C++

19.08.2013, 10:43. Просмотров 731. Ответов 2
Метки нет (Все метки)

Добрый день.
Проблема заключается в следующем, когда использую сторонние библиотеки, в данном случае использовал исходники SQLite 3 (http://www.sqlite.org/2013/sqlite-am...on-3071700.zip), то при компиляции проекта получаю следующее (в работе использую Microsoft Visual Studio C++ 2008):

1>Компоновка...
1>SQLiteTest.obj : error LNK2019: ссылка на неразрешенный внешний символ _sqlite3_close в функции _main
1>SQLiteTest.obj : error LNK2019: ссылка на неразрешенный внешний символ _sqlite3_errmsg в функции _main
1>SQLiteTest.obj : error LNK2019: ссылка на неразрешенный внешний символ _sqlite3_open в функции _main

Как раз компоновщик ругается на вызов библиотечных функций.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <sqlite3.h> 
 
int main(int argc, char* argv[])
{
   sqlite3 *db;
   char *zErrMsg = 0;
   int rc;
 
   rc = sqlite3_open("test.db", &db);
 
   if( rc ){
      fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
      exit(0);
   }else{
      fprintf(stderr, "Opened database successfully\n");
   }
   sqlite3_close(db);
}
Использовал тестовый код вот отсюда http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm раздел Connecting To Database.
Использовал шаблон проекта: "Консольное приложение Win32".

Ранее была подобная проблема с другими библиотеками, но в них помимо *.h файлов были ещё и *.lib, поэтому подключив в настройках компилятора дополнительные зависимости проблема была решена. В случае с sqlite3 и многими другими имеются только заголовочные файлы. Я менял настройки компилятора, но ничего не дало, гугл так же не помог. В чём может быть проблема, почему студия не компонует?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2013, 10:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы при компоновке error LNK2019 (C++):

Ошибка при компиляции error LNK2019 - C++
IMG.obj : error LNK2019: ссылка на неразрешенный внешний символ &quot;unsigned long __cdecl GTASA_CRC32_fromUpCaseString(char const *)&quot;...

Error LNK2019 при компиляции empty project - C++
День добрый! Создаю новый пустой проект в VS 2010 со следующей структурой: Header Files: header.h #include &lt;windows.h&gt; #include...

Error LNK1120, error LNK2019, error LNK2028, queue - C++
// свойство класса Parser queue&lt;elem*&gt;* postfix = new queue&lt;elem*&gt;; // строка, из-за которой происходит ошибка ...

Ошибка при написании класса: error LNK2019: ссылка на неразрешенный внешний символ - C++
Код: int _tmain(int argc, _TCHAR* argv) { Fraction x, x2, y, y2, fl, res, c; cout &lt;&lt; &quot;...&quot; &lt;&lt; endl; x.setFraction(); ...

Ошибка при работе со структурами: error LNK2019: ссылка на неразрешенный внешний символ _main - C++
#include&lt;iostream&gt; using namespace std; struct baza_film { char name_film ; char name_director ; char genre ; int...

Error LNK2019 и fatal error LNK1120 - C++
Копаюсь в гугле уже часа 2. Не понимаю, в чем проблема. Вроде нигде ошибок в коде нету, но выдает: 1&gt;------ Построение начато:...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15517 / 7015 / 1110
Регистрация: 02.05.2013
Сообщений: 11,452
Завершенные тесты: 1
19.08.2013, 12:25 #2
Включите в проект файл sqlite3.c.

Добавлено через 1 минуту
Цитата Сообщение от A_Crash Посмотреть сообщение
В чём может быть проблема, почему студия не компонует?
Компоновщик не знает, где находятся реализации sqlite3_open, sqlite3_close и sqlite3_errmsg.
Ему нужны или сами реализации (.c/.cpp), или ссылка на правильное место с помощью lib-файла.
A_Crash
4 / 4 / 0
Регистрация: 03.08.2013
Сообщений: 9
19.08.2013, 14:28  [ТС] #3
Понял, спасибо. Решил проблему. Необходимо было ещё сгенерировать файл sqlite3.lib из sqlite3.def, который находится в отдельном от исходников архиве (в архиве sqlite3.def и sqlite3.dll) http://www.sqlite.org/2013/sqlite-dl...86-3071700.zip, потом все файлы закидываются в директорию проекта.
Подробное описание данного процесса в данной статье http://www.watkyn.com/2008/07/using-...io-2008-c.html на случай если у кого подобная проблема.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2013, 14:28
Привет! Вот еще темы с ответами:

Ошибка при сборке проекта: "error LNK2019: unresolved external symbol" - C++
Все части проекта успешно компилируются , но при сборке появляются ошибки: 1&gt;prakt2.obj : error LNK2019: unresolved external symbol...

Ошибка при подключении заголовочного файла: "error LNK2019: unresolved external symbol" - C++
Добрый день. Я что то не могу разобраться как работают эти заголовки на с++(вижуал студия). Создал Test.h В нём написал ...

Ошибка при отображении русских шрифтов в консоли: "error LNK2019: ссылка на неразрешенный внешний символ" - C++
Доброго времени суток! решил модернизировать простенькую программу, чтобы отображался русский шрифт в консоли, делаю согласно книги, но не...

Ошибка при компоновке - C++
Вот быдлокод: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Cat{ public: Cat(int initalAge); ~Cat(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru