2

Buildrootを使用してLPC3250ARM用のLinuxイメージをコンパイルしようとしています。ストック設定、それはうまくコンパイルします。alsa-libとalsa-utilsを追加しようとすると、このエラーが発生します。

configure: error: in `/home/user/projects/buildroot/output/build/alsa-lib-1.0.26                                                                ':
configure: error: C preprocessor "/home/user/projects/buildroot/output/host/usr/                                                                bin/arm-buildroot-linux-uclibcgnueabi-cpp" fails sanity check
See `config.log' for more details

alsa-libのconfig.logの抜粋。エラーメッセージの半分が何らかの理由で途切れているので、それはちょっとひどいです:

    /home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/features.h:219:5: error: #error It appears you have defined _FILE_OF$
In file included from /home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/stdio.h:72,
                 from conftest.c:12:
/home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/bits/uClibc_stdio.h:61:2: error: #error Sorry... uClibc was built wi$
In file included from conftest.c:12:
/home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/stdio.h:83: error: expected '=', ',', ';', 'asm' or '__attribute__' $
In file included from conftest.c:12:
/home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/stdio.h:721: error: expected declaration specifiers or '...' before $
/home/user/projects/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/stdio.h:723: error: expected ';', ',' or ')' before '*' token

ここでの同様の質問は、CPPとCPPFlagsの「設定解除」について何かを言います。これをどこで行うか、Buildroot環境内で確認するかわからない。これが同じ問題であるかどうかはわかりません。他の質問ではGCCのコンパイルについて話しているので、私はそれが関係していないと推測しています。

今の私の一番の勘は、lib-alsaの設定ファイルを編集する必要があるということです。どのような編集を行うべきかわかりません。

編集:いくつかの積極的なグーグルを行い、私のエラーの1つのフルバージョンであると私が思う...features.h:329:2: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.ものを思いついた: 私のuClibc構成ファイルをチェックし、UCLIBC_HAS_LFS=y存在しています。???

4

2 に答える 2

2

ここでの問題の根本は、Buildrootが次の場所にあるuClibc構成ファイルを使用していることです。output/toolchain/uClibc-0.9.33.2/.config

Buildroottoolchain/uClibc/uClibc-0.9.33.config構成メニューで指定されているとおりではありません。

私は実行しmake uclibc-menuconfig(デフォルトでは.configに構成を保存します)、選択General Library Settings->Large File Supportするとすべてが正常にコンパイルされました。

于 2012-12-19T06:07:25.573 に答える
2

ええと、Buildrootoutput/toolchain/uClibc-0.9.33.2/.configがuClibcを設定してビルドするときから生成されます。したがって、uClibc構成としてtoolchain/uClibc/uClibc-0.9.33.config使用することは意味がありません。output/toolchain/uClibc-0.9.33.2/.configデフォルトのをそのままにしておく必要がありますtoolchain/uClibc/uClibc-0.9.33.config

ラージファイルサポートに関しては、通常、すべてのパッケージが適切に依存しています。したがって、パッケージでラージファイルサポートが必要な場合は、Buildrootでラージファイルサポートを有効にするまでパッケージを選択できません。そうでない場合、それはバグであり、Buildrootコミュニティは、これに関するバグレポート(Buildrootのバージョン、使用されているBuildroot構成ファイル、および発生するビルドエラーの詳細)を入手することに関心があります。 。

ここで、ラージファイルサポートが実際に必要な場合は、uClibcレベルではなく、Buildrootレベルで有効にする必要があります。uClibcレベルでのみ有効にすると、Buildrootはこれについては認識せず、ラージファイルサポートに依存しているすべてのパッケージを表示しません。

したがって、BR2_TOOLCHAIN_BUILDROOT_LARGEFILEBuildrootで構成オプションを有効にしてから、完全に再構築する必要がありますmake clean all

于 2013-01-09T08:08:10.163 に答える