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