2014-01-21 134 views
-1

我正在一個C++項目中,我想使用Sqlite數據庫,但在我的代碼中我收到錯誤。錯誤LNK2019:無法解析的外部符號_sqlite3_key在函數中引用_main

錯誤LNK2019:在函數引用解析的外部符號_main _sqlite3_key

我我的代碼是:

sqlite3 *db; 

int rc; 
rc = sqlite3_open("sql.db", &db); 
const char ch[] = "1234"; 

rc = sqlite3_key(db,ch,strlen(ch)); 

if (sqlite3_exec(db, "SELECT count(*) FROM sqlite_master;", NULL, NULL, NULL) == SQLITE_OK) { 
    printf("Success"); 
    // key is correct. 
} else { 
    // key is incorrect 
    printf("Error in Database Execution"); 
} 

我使用VS2010。 我做了libdll的所有必需設置。 但它迄今爲止並沒有幫助我。

任何人都可以幫助我嗎?

+2

'sqlite3_key()'不是標準sqlite的一部分,所以首先確保你的鏈接器路徑有這個擴展名的sqlite版本。 – laalto

+0

是的,它有'sqlite3ext.h',但仍然給出相同的錯誤 –

+2

編譯時使用頭文件'.h'。庫例如鏈接時使用'.lib'。你有一個鏈接錯誤。 – laalto

回答

0

看起來您正在使用像SQLCipherSQLiteEncrypt這樣的加密庫,這意味着您必須將相應的庫(例如SQLiteEncrypt.lib)添加到庫設置中。您可能也可以添加使用#pragma

#pragma comment(lib, "SQLiteEncrypt.lib") 
+0

對不起,我沒有使用'SqliteEncrypt'庫,因爲它不能幫助我進一步應用程序,因此我使用'native sqlite3.dll和sqlite3.lib' –

+0

然後刪除包含'rc = sqlite3_key(db,ch,strlen(ch));'from your source – wimh

+0

我不能看看[我的下一個應用程序的方法](http://stackoverflow.com/q/21251113/ 3110262) –

相關問題