0

コンパイラオプションをファイルに選択的に適用できますか?一部のファイルを一部のオプションでカバーしたいが、他のファイルはカバーしたくない。

4

2 に答える 2

1

Makeファイルを使用している可能性があると推測します。

これで始められるはずです:source2.cのためだけに-fopenmpが追加される方法に注意してください

CC=gcc
SRC=source1.c source2.c
OBJ=$(patsubst %.c,%.o,$(SRC))
EXE=source1.exe
FLAGS= -g -O2

source2.o: FLAGS+=-fopenmp

all: $(EXE)

$(EXE): $(OBJ)
    $(CC) -o $@ $^ $(FLAGS)

%.o: %.c
    $(CC) -c -o $@ $^ $(FLAGS)

clean:
    rm $(EXE)$

make -Bsnの出力:

gcc -o source1.o source1.c -g -O2
gcc -o source2.o source2.c -g -O2 -fopenmp
gcc -o source1 source1.o source2.o -g -O2
于 2011-12-15T09:29:38.453 に答える
0

もちろん。コンパイラーを呼び出すと、必要なものを伝えることができます。

一部のツールでは、いくつかの制限が追加される場合があります。Visual Studioは、私が知る限り、プロジェクトレベルでのオプションの指定のみを許可しています。しかし、それはツールの人為的な制限です(そして、それを回避する方法があると確信しています。私はそれらを知らないだけです)。

于 2011-12-15T09:00:30.817 に答える