[英]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.