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 に答える