2

Windows 8 で GNU make を使用して makefile について学習しています。私が参照しているチュートリアルは Linux 用に書かれているので、'/' を '\' に置き換えるなど、私が知る限り、指定された makefile を修正しています。

私のメイクファイルの内容は次のとおりです。

CC=g++
INCLIST=functions.h
INCDIR=..\include
OBJDIR=.\obj
BINDIR=..\bin
_OBJLIST = main.o
OBJ=$(patsubst %,$(OBJDIR)\%,$(_OBJLIST))

all: main.o

main.o: main.cpp
    $(CC) -c -I $(INCDIR) main.cpp -o $(OBJ)

main.cpp を手動でコンパイルできます

g++ -c -I ..\include main.cpp -o .\obj\main.o

ただし、実行するmakeと、出力は次のようになります。

g++ -c -I ..\include main.cpp -o .\obj%

オブジェクト ファイルは、ディレクトリではなく現在のディレクトリに作成され、required の代わりに.\obj名前が付けられます。Ubuntuで同じセットアップを実行しましたが、完全に機能しました。理由を教えてください。./obj%main.o

ありがとう.. :)

4

1 に答える 1

1

バックスラッシュはエスケープ マーカーであるため、\% は文字通りのパーセント記号です。また、/ は Windows でも動作します。

于 2013-03-29T18:38:56.807 に答える