1

我在基于 ARM9 的微处理器中使用 SQLite 3 进行数据库管理。

我想在 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:错误:ac_nonexistent.h:没有这样的文件或目录 4.conftest.c:67:13:错误:一元'*'的无效类型参数(有'int')

我怀疑天气是否已正确交叉编译。我无法理解。

我将库插入到我的板上,它工作正常,但问题是速度变得非常慢。我认为有一些问题是我没有为 GCC 编译器设置任何标志。

我找不到任何选项。如何为 GCC 编译器设置特定标志,以便省略不必要的功能。

4

1 回答 1

0

您可能不应该尝试手动进行交叉编译。相反,请使用嵌入式 Linux 构建系统来为您完成这项工作,并完全自动化交叉编译过程。我最喜欢的当然是 Buildroot ( http://buildroot.org ),但还有很多其他的(质量、复杂性和功能级别不同):OpenEmbedded、Yocto、PTXdist 等。

于 2013-03-15T08:26:49.993 回答