0

組み込み C コードベースの自動ビルドおよび継続的統合環境に取り組んでいます。Keil の Real View Compiler (Windows 実行可能ファイル) をクロス コンパイラとして使用し、Cygwin を使用して継続的インテグレーション環境全体を構築しています。

Keil のドキュメントによると、Cygwin を使用している場合、インクルード ファイルなどの Cygwin パスを理解するには、コンパイラ (つまり、Windows 実行可能ファイル) に対して CYGPATH 環境変数を適切に設定する必要があります。( http://www.keil.com/support/man/docs/ARMINTRO/armintro_pge1362395716635.htm )

メイクファイルは次のようになります。

INCLUDE_DIR=-I$(PATH_TO_KEIL)/MDK-Middleware \
            -I$(PATH_TO_KEIL)/ARM 


a.o : a.c
    echo
    echo Compiling $<....;
    echo cc -c $(INCLUDE_DIR) -o a.o a.c ;
    cc -c $(INCLUDE_DIR) -o a.o  a.c ;

$cc -c -I/cygdrive/c/Keil_v5/MDK-Middleware -I/cygdrive/c/Keil_v5/ARM -o a.o a.c Cygwin ターミナルで直接実行 すると、クロス コンパイルが正常に行われます。

ただし、PATH_TO_KEIL を /cygdrive/c/Keil_v5 として定義しているにもかかわらず、makefile コンパイラーを実行すると、インクルード ファイルが見つからないというエラーが表示されます (つまり、/cygdrive/c/Keil_v5/ARM または C:\Keil_v5 に存在するファイル)。

また、それが役立つ場合は、インクルード ファイルの相対パスを指定すれば、クロス コンパイルの実行に問題はありません。

4

1 に答える 1

0

インクルード ディレクトリを指す Makefile で var を宣言する必要があります。例えば、

INCLUDE_DIR = c:/path/to/include/したがって、メイクファイルのターゲットは次のようになります。

$armcc.exe -I$(INCLUDE_DIR) foo.c

于 2015-09-28T19:21:28.060 に答える