0

私はまだ作るのがとても新しいです。maketest.cpp と maketest.hppUsers/wen/Projects/maketestが Makefile 自体に依存するプロジェクトをコンパイルしようとしています。.cc問題は、ソース ファイル (および.hh)もコンパイルしてリンクしたいということですUsers/wen/Projects/include/bigint

# Macros

INCLUDE = -I/Users/wen/Projects/include/bigint
LIBS =

CC = g++
override FLAGS += -O2

HEADERS= $(wildcard *.hpp) $(wildcard Users/wen/Projects/include/bigint/*.hh) 

# EXE Name
INSTALL = maketest

CC_FILES = %.cpp Users/wen/Projects/include/bigint/%.cc
OBJ_FILES = maketest.o $(wildcard Users/wen/Projects/include/bigint/*.o)

# Rules

$(INSTALL): $(OBJ_FILES)
    $(CC) $(FLAGS) $^ -o $@ $(LIBS)

%.o: $(CC_FILES) $(HEADERS)
    $(CC) $(FLAGS) $(INCLUDE) -c $< -o $@

# Installation types

install: $(INSTALL)

release:
    @echo "Re-run with parameter:"
    @echo "FLAGS=-D_RELEASE"

debug:
    @echo "Re-run with parameter:"
    @echo "FLAGS=-D_DEBUG"

# Cleaning up

clean:
    rm -f $(OBJ_FILES) $(INSTALL)

コードは maketest.cpp をコンパイルしてリンクしますが、bigint はリンクしません。

からファイルをビルドしてリンクする正しい方法は何Users/wen/Projects/include/bigintですか? どうもありがとう!

4

1 に答える 1

1

私は最後にそれを理解しました、ジェイに感謝します。問題は、の前にあるスラッシュを忘れていたUsers/wen/Projects/include/bigintため、ルートからではなく、プロジェクト フォルダーから検索していたことです。今それは動作します!

OBJ_FILES で bigint からファイルの 1 つを明示的に指定してみてください (おそらく "bigint.o" ?)。あなたのワイルドカードがあなたが望むものを得ているとは思いません。

于 2012-12-20T01:31:21.187 に答える