2

複数のディレクトリにコードを含むプロジェクトを取得しました。私がやろうとしているのは、これらのディレクトリのそれぞれを再帰的にコンパイルすることです。これは実行できます。

静的ライブラリを作成できるので、.aこのメイクファイルを含むファイル

CXX=g++
CXXFLAGS=-std=c++11
PROJECT=admin.a

OBJECTS = Manager.o


all: $(PROJECT)

.cpp.o:
    @echo -e "\033[32m -Building "$*"...\033[0m"
    $(CXX) -c $(CXXFLAGS) $<

$(PROJECT): $(OBJECTS)
    @echo -ne "\033[31m -Creating static library "$*"..."
    @(ar rcs $(PROJECT) $(OBJECTS))
    @echo -e "[DONE] \033[0m"

clean:
    @(rm -rf *.o)

mrproper: clean
    @(rm -rf $(EXEC))

しかし、これらをメインプログラムにリンクする方法がわかりません。

どんな助けもとても役に立ちます、

ありがとう、

4

1 に答える 1

1

静的ライブラリ ( .a) をリンカー行に直接含めることができます。

gcc -o executable main.o admin.a
于 2013-02-11T23:04:56.850 に答える