簡體   English   中英

具有一個.o文件和一個.CPP文件的c ++ Makefile

[英]Makefile for c++ with one .o file and one .CPP file

我正在嘗試創建一個makefile以在linux上構建Windows c ++項目。 我必須在不同目錄中編譯.cpp,以使用對象創建一個庫.so。 為此,我創建了一個腳本來查找.cpp並將其放入文件中:

SOURCE= \
./Source/CHAINE.CPP\
./Source/CRACKCHN.CPP\
./Source/LISTEPTR.CPP\

現在我的makefile看起來像:(我知道我將不得不更改$(TARGET):$(OBJECT)規則,但是我認為那不是我的問題)

-include sources.mk
OBJECT = $(SOURCE:%.CPP=%.o)
# 
$(TARGET) : $(OBJECT) 
         $(CC) $(CFLAGS) -o $@ $^ $(LIBS) 

$(OBJECT) : $(SOURCE)
         $(CC) $(CFLAG) $(PREPROC) -c $< -o $(OBJ_DIR)/$@ $(INCLUDE)

但是當我執行make命令時,所有對象都是使用第一個.CPP(此處為CHAINE.CPP)創建的:

g++ -Wall -D _MSC_VER -D _GPP -c Source/CHAINE.CPP -o ./Source/CHAINE.o 
===
g++ -Wall -D _MSC_VER -D _GPP -c Source/CHAINE.CPP -o ./Source/CRACKCHN.o
===
g++ -Wall -D _MSC_VER -D _GPP -c Source/CHAINE.CPP -o ./Source/LISTEPTR.o 

這是我第一次創建Makefile,如果有人有解決方案,我有很多問題要解決。

$(OBJECT)是所有對象的列表。 使用最后一條規則,您似乎想告訴Make如何從單個.cpp構建單個.o。 它應具有以下條件:

%.o: %.cpp
    $(CC) $(CFLAG) $(PREPROC) -c $< -o $(OBJ_DIR)/$@ $(INCLUDE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM