1

I am trying to use UnQLite database with visual studio 2012, but when I try to open the database I got the following error:

error LNK2019: unresolved external symbol "int __cdecl unqlite_open(struct unqlite * *,char const *,unsigned int)" (?unqlite_open@@YAHPAPAUunqlite@@PBDI@Z) referenced in function "bool __cdecl connect_database(void)" (?connect_database@@YA_NXZ)

This is my code:

void connect_database() {

 // Open our database;
 rc = unqlite_open(&pDb,"myDB.db",UNQLITE_OPEN_CREATE);

 if( rc != UNQLITE_OK ){ return; }

}

I would appreciate your help.

Thanks.

Community
  • 1
  • 1
user3619911
  • 107
  • 1
  • 9
  • Did you add `unqlite.c` to your visual studio project so that it is built as part of your application? – drescherjm Jun 25 '15 at 02:54
  • Yes, I did. I added as existing item and after that I put the option precompiled header as 'Not using Precompiled headers'. This proceeding worked for others libraries. – user3619911 Jun 25 '15 at 06:47

1 Answers1

3

If your are compiling your project in C++, and included the unqlite.h header in a C++ file, you might want to surround it with an extern "C" statement. This should look like this:

extern "C" {
#include "unqlite.h"
}

I believe that the distributed header file at the root of the project lacks this statement. You can alternatively try to use the unqlite.h file under the scr/ folder on the Unqlite GitHub, that does have this statement inside:

https://github.com/symisc/unqlite

Cheers!

woldendans
  • 80
  • 5