簡體   English   中英

為C ++程序編寫Makefile

[英]Writing Makefile for c++ program

我已經在NetBeans上編寫了c ++程序,現在我想在Linux上的命令行上運行它。 如何編寫Makefile,編寫邏輯是什么?

我有3個.cpp文件和2個.hpp文件。

這是我嘗試做的:

# Makefile

# the C++ compiler
CXX     = g++
CC      = $(CXX)

# options to pass to the compiler
CXXFLAGS = -Wall -ansi -O2 -g
Run: Run.cpp Assessment3.o Student.o
$(CXX) $(CXXFLAGS) Run.cpp Assessment3.o Student.o -o Run

Run: Run.cpp Assessment3.hpp  Assessment3.o Student.o
 $(CXX) $(CXXFLAGS) Run.cpp Assessment3.o Student.o -o Run  

Assessment3.o: Assessment3.cpp Assessment3.hpp
$(CXX) $(CXXFLAGS)  -c Assessment3.cpp

Student.o: Student.cpp Assessment3.o
    $(CXX) $(CXXFLAGS) -c Student.cpp 

它給我“缺少分隔符。 停止。' 命令行錯誤。 並不是說這是一個錯誤。 干杯

假設您要構建一個名為foo的可執行文件,則可以只使用一個簡單的makefile,它只需一個依賴項就可以一次構建所有內容:

# makefile 

SRCS = a.cpp b.cpp c.cpp

HDRS = a.h b.h

CXXFLAGS = -Wall

foo: $(SRCS) $(HDRS)
    g++ $(CXXFLAGS) $(SRCS) -o $@

編輯

或者,將您的初始makefile放在上面並修復一些小問題:

# Makefile

# the C++ compiler
CXX     = g++
CC      = $(CXX)

# options to pass to the compiler
CXXFLAGS = -Wall -ansi -O2 -g

Run: Run.o Assessment3.o Student.o
    $(CXX) $(CXXFLAGS) Run.o Assessment3.o Student.o -o $@

Run.o: Run.cpp
    $(CXX) $(CXXFLAGS) Run.cpp -o $@  

Assessment3.o: Assessment3.cpp Assessment3.hpp
    $(CXX) $(CXXFLAGS) -c Assessment3.cpp -o $@

Student.o: Student.cpp Student.hpp
    $(CXX) $(CXXFLAGS) -c Student.cpp -o $@

這可能對我有幫助http://mrbook.org/tutorials/make/我使用QtCreator隨附的qMake

“缺少分隔符”錯誤通常是由於沒有在命令前使用TAB字符來針對特定目標執行的。 請嘗試以下操作:

Run: Run.cpp Assessment3.o Student.o
[TAB] $(CXX) $(CXXFLAGS) Run.cpp Assessment3.o Student.o -o Run

當然,您必須插入一個制表符,而不是[TAB]。

暫無
暫無

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

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