#ifndef
acファイルの先頭に置くことは可能ですか? 基本的に、プログラムの実行時に特定のプリプロセッサ定数が宣言されているかどうかを確認する必要があり、それに応じてプログラムが変更されます。
が引数として追加されているかどうかを確認する必要があり-D DESCENDING_ORDER=1
ます (指定された値は関係ありません)。
メインの c ファイルの先頭に次のコードがあります。
#ifndef DESCENDING_ORDER
int ascending = 1;
#else
int ascending = 0;
#endif
単独でコンパイルすると機能しますが、Makefile を使用してコンパイルしようとするとエラーが発生しint ascending = 1
ます。
ありがとう。
編集 - Makefile コードを追加
CC=gcc
CFLAGS=-g -Wall
INC=-include
RES_OBS=res.o
LIBS=
all: res
res: $(RES_OBS)
$(CC) $(CFLAGS) -o res $(RES_OBS) $(LIBS) $(INC) res.h -D DESCENDING_ORDER=1
clean:
rm -f *.o
clobber:
make clean
rm -f res
$(INC)....DESCENDING_ORDER=1
コマンドの最後に推測して追加したようなものなので、おそらくそれが機能していない理由です。makefileなしで使用しているコマンド:
gcc res -include res.h -D DESCENDING_ORDER=1
-include res.h
EDIT 2 - さまざまな引数で少し遊んで、コマンドで削除すると同じエラーが発生することがわかりました。Makefile でヘッダー ファイルを正しく参照する方法がまだわかりませんか? res.c ファイルに を追加しました#include "res.h"
が、それでもエラーが発生します。