0

AVR プロジェクトに取り組んでおり、コードを含む複数のフォルダーがあります。

私が使用しているメイクファイルは、Pat Deegan による「Standardized AVR Makefile Template」です。すべてのフォルダー内のすべての cpp ファイルを正しくコンパイルし、適切なオブジェクト (.o) ファイルを生成できます。

ただし、リンカはサブフォルダ内の .o ファイルを検索しようとするため失敗します (コンパイラはそれらをメイン フォルダに置きます)。これは私が得るエラーの例です:

avr-gcc: subfolder/module.o: そのようなファイルまたはディレクトリはありません make: ***

[GrandCanyon.out] エラー 1

リンカーとコンパイラーがファイル (.o) を同じフォルダーに配置してチェックするように変更するのを手伝ってもらえますか?

ありがとうございました

ここでメイクファイルを入手できます: http://electrons.psychogenic.com/articles/Makefile.tpl

4

2 に答える 2

1

こんにちは、C++ ではなく C のみで avr MCU をプログラミングしています。そのため、セクション CFLAGS でメイクファイルを約 1 行拡張しました。

CFLAGS=-I. $(INC) -g -mmcu=$(MCU) -O$(OPTLEVEL) \ 
    -fpack-struct -fshort-enums             \ 
    -funsigned-bitfields -funsigned-char    \ 
    -Wall -Wstrict-prototypes               \ 
    -o $(firstword $(filter %.o, $(<:.c=.o))) \
    -Wa,-ahlms=$(firstword $(filter %.lst, $(<:.c=.lst)))

これは、サブディレクトリにソース ファイルがある場合に機能します。これはC++用ではありませんが、これがあなたの助けになることを願っています

于 2011-07-26T21:08:25.987 に答える