1

我在基於ARM9的微處理器中使用SQLite 3進行數據庫管理。Sqlite 3.7.15 Crosss編譯ARM

我想在Linux(Ubuntu 10.04)中爲我的項目交叉編譯最新版本的SQLite 3。我正在使用arm-none-linux-gnueabi-gcc compiler進行開發。

我試圖穿越編譯使用下面的命令,

下載的sqlite-amalgamation-3.7.0.tar 我提取它,然後寫上終端下面的命令,

sudo ./configure --exec-prefix=/media/8CCC8E9BCC8E7F68/SQLIte3/sqliteinstall/ --host=arm --target=arm CC=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-gcc AR=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-ar STRIP=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-strip RANLIB=/opt/arm-2011.03/bin/arm-none-linux-gnueabi-ranlib CFLAGS="-Os" 

它成功地交叉編譯SQLite的。

然後,

sudo make命令。

它成功運行。

現在「make install」命令。

它沒有給我一個錯誤,但是當我去到的config.log文件,我發現有一些句子如下,

1.conftest.c:17:7:錯誤:數組大小「 off_t_is_large'爲負數 2.conftest.c:12:28:致命錯誤:ac_nonexistent.h:沒有這樣的文件或目錄 編譯終止。 3.conftest.cpp:23:28:error:ac_nonexistent.h:No such file or directory 4.conftest.c:67:13:error:一元'*'的無效類型參數(有'int')

我懷疑天氣已經交叉編譯正確與否。 我無法理解。

我將庫插入到我的電路板上,但工作正常,但問題在於速度變得非常慢。我認爲有一些問題,我沒有爲GCC編譯器設置任何標誌。

我找不到任何選項。如何設置GCC編譯器的特定標誌,以便省略不必要的特徵。

回答

-1

您可能不應該嘗試手動進行交叉編譯。相反,使用嵌入式Linux構建系統可以爲您做到這一點,並完全自動完成交叉編譯過程。我最喜歡的當然是Buildroot(http://buildroot.org),但有很多其他(質量,複雜性和功能等級各不相同):OpenEmbedded,Yocto,PTXdist等。

+0

感謝您的建議。但我想用build Essentials進行交叉編譯。我走得更遠了。我發現它無法爲安裝它的編譯器找到正確的路徑。我對嗎 ? – 2013-03-15 08:34:36

+0

對不起,但您提供的方式太少,細節。什麼是「構建要點」? – 2013-03-23 19:06:45

+0

構建要點是一個實用程序來建立任何package.ok罰款我得到了解決方案,我已經成功交叉編譯SQLite3.7.15.2爲我的ARM9基板。 – 2013-03-25 09:47:20