用于 ARM 的 Sqlite 3.7.15 交叉编译
Posted
技术标签:
【中文标题】用于 ARM 的 Sqlite 3.7.15 交叉编译【英文标题】:Sqlite 3.7.15 Crosss compilation for ARM 【发布时间】:2013-03-14 09:00:36 【问题描述】:我在基于 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 编译器设置特定标志,以便省略不必要的功能。
【问题讨论】:
【参考方案1】:您可能不应该尝试手动进行交叉编译。相反,请使用嵌入式 Linux 构建系统来为您完成此任务,并完全自动化交叉编译过程。我最喜欢的当然是 Buildroot (http://buildroot.org),但还有很多其他的(质量、复杂性和功能各不相同):OpenEmbedded、Yocto、PTXdist 等。
【讨论】:
感谢您的建议。但我想使用 build Essentials 进行交叉编译。我走得更远。我发现它无法为安装它的编译器找到正确的路径。我说的对吗? 很抱歉,您提供的细节太少了。什么是“构建要素”? Build Essentials 是一个用于构建任何包的实用程序。好的,我得到了解决方案,我已经成功地为基于 ARM9 的板交叉编译了 SQLite3.7.15.2。以上是关于用于 ARM 的 Sqlite 3.7.15 交叉编译的主要内容,如果未能解决你的问题,请参考以下文章