2012-07-20 94 views
1

我是一個完整的初學者,具有Code :: Blocks和SQLite,並具有一些C++基礎知識。我目前正在使用Ubuntu 11.04。如何在使用Code :: Blocks的C++程序中使用SQLite?

我已經下載SQLite Amalgamation here。當我提取zip文件時,裏面有四個文件:shell.c,sqlite3.c,sqlite3.hsqlite3ext.h。如果我只是將這些文件添加到(例如)一個控制檯項目中,它會發出一個錯誤:下載的sqlite的.c文件都有它們自己的主函數。刪除項目中的錯誤消失了,我可以致電#include "sqlite3.h"。我試圖按照this,並嘗試從here的前兩行代碼,它給出了一個錯誤:undefined reference to sqlite3_open

我認爲將這些.h's直接添加到控制檯項目並不是正確的方式來使用它,但我不確定。

究竟應該如何使用這些?我應該怎麼做才能將這些用於我的C++程序?

任何幫助,非常感謝。 :)

編輯:我也試圖通過以下this創建這些sqlite文件的.a文件。當我嘗試它時,它會發出一個錯誤:cannot find -lsqlite

回答

2

您需要先編譯sqlite代碼,然後將#include "sqlite3.h"編譯到您需要的地方。

UPD: 試試這個:從SQLite的網站

下載this package某處提取,比方說,到一個名爲 「源碼」 的文件夾。打開終端,進入該文件夾。在裏面,運行

./configure 
sudo make 
sudo make install 

看看會發生什麼。它應該自動構建。也請參閱檔案中的README文件。

+0

感謝您的答覆:) ..though我不知道如何編譯它..做我只是將它添加到一些項目和「構建項目」? – 2012-07-20 07:01:30

+0

@GeraldTorres,更新了我的回答 – SingerOfTheFall 2012-07-20 07:13:10

+0

謝謝:)雖然我已經解決它之前我讀這個.. :(謝謝反正:) – 2012-07-20 07:39:26

4

我明白了!雖然有些事情是我做的導致了一些問題..我忘了刪除我之前在Project> Build Options> Linker Settings中添加的.a文件,這會導致問題..

以下是我添加的步驟SQLite的:(對於那些可能具有相同的問題)

  1. 複製從SQLite的融合到項目的目錄中提取的文件。

  2. 添加sqlite的文件(項目>添加文件)除了shell.c(這是導致多功能錯誤之一)

  3. 編譯它(是的,一個簡單的按Ctrl + F9)。

  4. 這裏是錯誤:undefined reference to pthread_mutexattr....。進入項目>構建選項>突出顯示「左上角的DebugRelease」上方的「項目名稱」>鏈接器設置,並將"-lpthread"(不含引號)添加到Other linker options:以解決這些問題。

  5. 發現了更多的錯誤:undefined reference to dlopen, dlerror....。在剛剛添加的''-lpthread''下面添加''-ldl''。

DONE :)

1

我沒有找到Windows作爲一個初學者一個完整的答案,並在開始的時候是很痛苦的明白了一切。所以這裏是對我有用的。

  1. 下載SQlite Amalgamation文件。
  2. 打開代碼::塊 - >新建項目 - >選擇靜態庫
  3. 解壓縮下載的文件並將文件夾/內容複製到新的項目目錄中。將所有文件添加到項目中,然後構建項目
  4. 您會在bin/Debug或bin/Release目錄中找到一個ProjectName .a文件。將該文件複製到您的實際SQlite項目目錄。
  5. 轉到代碼::塊項目 - >構建選項。選擇「鏈接器設置」選項卡並將路徑添加到.a文件。不要關閉它!
  6. 在「搜索目錄」選項卡中,選擇「編譯器」選項卡,添加Amalgamation頭文件的路徑,或將頭文件複製到您的目錄(您可以將頭文件添加到項目中)並在'Linker '選項卡將路徑添加到.a文件
  7. 現在編譯!!!希望這將運行

這就是一切,我希望它可以節省一些搜索時間再小白

相關問題