GCCクロスコンパイラがヘッダファイルを見つけることができません

GCCクロスコンパイラがヘッダファイルを見つけることができません

ARMターゲット用に事前構築されたクロスツールチェーンがあるホストPCです。ソースからプロジェクトをビルドしようとしていますが、コードがpppd-2.4.1モジュールをビルドしようとすると、エラーが発生したときにビルドプロセスが停止します。ログの関連部分は次のとおりです。

... ... ...
if [ -f pppd/Makefile.cyt ]; then \
    make -C pppd -f Makefile.cyt; \
else \
    make -C pppd; \
fi
make[3]: Entering directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router/open_source/pkgs/pppd-2.4.1'
make -C pppd
make[4]: Entering directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router/open_source/pkgs/pppd-2.4.1/pppd'
/opt/emlix/pnx8181/bin/arm-linux-gnueabi-gcc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr/local"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o utils.o utils.c
utils.c:79:21: error: cy_conf.h: No such file or directory
<builtin>: recipe for target 'utils.o' failed
make[4]: *** [utils.o] Error 1
make[4]: Leaving directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router/open_source/pkgs/pppd-2.4.1/pppd'
Makefile.cyt:18: recipe for target 'all' failed
make[3]: *** [all] Error 2
make[3]: Leaving directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router/open_source/pkgs/pppd-2.4.1'
/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/Rules.mk:74: recipe for target '_subdir_pppd' failed
make[2]: *** [_subdir_pppd] Error 2
make[2]: Leaving directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router/open_source'
/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/Rules.mk:74: recipe for target '_subdir_open_source' failed
make[1]: *** [_subdir_open_source] Error 2
make[1]: Leaving directory '/home/vestjo/test/payton_1.4.1.SR1_gpl/payton/src/router'
Rules.mk:74: recipe for target '_subdir_router' failed
make: *** [_subdir_router] Error 2

コンパイラがヘッダファイル 'cy_conf.h' を見つけることができません。ヘッダーファイルパス:$(SRCBASE)/include/cy_conf.h。プロジェクトmakefileには複雑な構造と多重レベル再帰makefileがあります。

プロジェクトの最上位ディレクトリには設定ファイルは含まれていませんが、サブディレクトリの一部のモジュールには設定ファイルが含まれています。プロジェクトはメイン(最上位)ディレクトリにあるMakefileを実行して構築する必要があります。コードをビルドする前に、これらの構成ファイルを実行する必要はありません。 gccコンパイラにヘッダファイルを検索させる方法は?

編集:/pppdディレクトリ(サブフォルダ)で「make」を実行すると同じエラーが発生します。

pppd$ make
cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr/local"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS   -c -o utils.o utils.c
utils.c:79:21: fatal error: cy_conf.h: No such file or directory
 #include <cy_conf.h>
                     ^
compilation terminated.
<builtin>: recipe for target 'utils.o' failed

ベストアンサー1

ppp-2.4.1 ソースコードはこちらからダウンロードできます:https://download.samba.org/pub/ppp/ ビルドのガイドラインは古典的です。まず、ソースディレクトリの上部で構成スクリプトを実行してビルドを構成します。

設定がうまくいかない場合は、プリプロセッサがインクルードを見つけるのに役立つことを知っておくと便利です。 export CPPFLAGS=-I${SRCBASE}/include構成スクリプトを実行する前に支援を受けることができます。

このパッケージをクロスコンパイルするには、コンパイル時にコンパイラを調整する必要があります。

CC=<name of>-<your>-<tuple here>-gcc make

おすすめ記事