[英]Enabeling C++ 11 support in my makefile using CXXFLAGS
I'm trying to compile my program on my School's server but need to enabel C++ 11 in order to get my program to compile. 我正在尝试在学校的服务器上编译程序,但需要启用C ++ 11才能编译程序。 I'm not sure if I how to implement the g++ -std=c++11 *.cpp *.h -o programName that I used when compiling from my the terminal. 我不确定是否要实现从终端编译时使用的g ++ -std = c ++ 11 * .cpp * .h -o programName。
This is my makefile: 这是我的makefile:
all, Project4, Project4.exe: Character.o Barbarian.o BlueMen.o Vampire.o
Medusa.o HarryPotter.o LinkedList.o Queue.o Stack.o main.o
g++ main.o Character.o Barbarian.o BlueMen.o Vampire.o Medusa.o
HarryPotter.o LinkedList.o Queue.o Stack.o -o Projec4
Character.o: Character.cpp Character.h
g++ -c Character.cpp
Barbarian.o: Barbarian.cpp Barbarian.h
g++ -c Barbarian.cpp
BlueMen.o: BlueMen.cpp BlueMen.h
g++ -c BlueMen.cpp
Vampire.o: Vampire.cpp Vampire.h
g++ -c Vampire.cpp
Medusa.o: Medusa.cpp Medusa.h
g++ -c Medusa.cpp
HarryPotter.o: HarryPotter.cpp HarryPotter.h
g++ -c HarryPotter.cpp
LinkedList.o: LinkedList.cpp LinkedList.h
g++ -c LinkedList.cpp
Queue.o: Queue.cpp Queue.h
g++ -c Queue.cpp
Stack.o: Stack.cpp Stack.h
g++ -c Stack.cpp
main.o: main.cpp Character.h Barbarian.h BlueMen.h Vampire.h Medusa.h
HarryPotter.h LinkedList.h Queue.h Stack.h
g++ -c main.cpp
clean:
-rm *.o
Just add the necessary compile parameter to the makefile rules: 只需将必要的compile参数添加到makefile规则中:
all, Project4, Project4.exe: Character.o Barbarian.o BlueMen.o Vampire.o
Medusa.o HarryPotter.o LinkedList.o Queue.o Stack.o main.o
g++ main.o Character.o Barbarian.o BlueMen.o Vampire.o Medusa.o
HarryPotter.o LinkedList.o Queue.o Stack.o -std=c++11 -o Projec4
Character.o: Character.cpp Character.h
g++ -c -std=c++11 Character.cpp
Barbarian.o: Barbarian.cpp Barbarian.h
g++ -c -std=c++11 Barbarian.cpp
BlueMen.o: BlueMen.cpp BlueMen.h
g++ -c -std=c++11 BlueMen.cpp
Vampire.o: Vampire.cpp Vampire.h
g++ -c -std=c++11 Vampire.cpp
Medusa.o: Medusa.cpp Medusa.h
g++ -c -std=c++11 Medusa.cpp
HarryPotter.o: HarryPotter.cpp HarryPotter.h
g++ -c -std=c++11 HarryPotter.cpp
LinkedList.o: LinkedList.cpp LinkedList.h
g++ -c -std=c++11 LinkedList.cpp
Queue.o: Queue.cpp Queue.h
g++ -c -std=c++11 Queue.cpp
Stack.o: Stack.cpp Stack.h
g++ -c -std=c++11 Stack.cpp
main.o: main.cpp Character.h Barbarian.h BlueMen.h Vampire.h Medusa.h
HarryPotter.h LinkedList.h Queue.h Stack.h
g++ -c -std=c++11 main.cpp
clean:
-rm *.o
For maintainability you could also add a makefile-variable containing all the compiler-flags necessary: 为了可维护性,您还可以添加一个makefile变量,其中包含所有必需的编译器标志:
CXXFLAGS := -std=c++11
all, Project4, Project4.exe: Character.o Barbarian.o BlueMen.o Vampire.o
Medusa.o HarryPotter.o LinkedList.o Queue.o Stack.o main.o
g++ main.o Character.o Barbarian.o BlueMen.o Vampire.o Medusa.o
HarryPotter.o LinkedList.o Queue.o Stack.o $(CXXFLAGS) -o Projec4
Character.o: Character.cpp Character.h
g++ -c $(CXXFLAGS) Character.cpp
Barbarian.o: Barbarian.cpp Barbarian.h
g++ -c $(CXXFLAGS) Barbarian.cpp
BlueMen.o: BlueMen.cpp BlueMen.h
g++ -c $(CXXFLAGS) BlueMen.cpp
Vampire.o: Vampire.cpp Vampire.h
g++ -c $(CXXFLAGS) Vampire.cpp
Medusa.o: Medusa.cpp Medusa.h
g++ -c $(CXXFLAGS) Medusa.cpp
HarryPotter.o: HarryPotter.cpp HarryPotter.h
g++ -c $(CXXFLAGS) HarryPotter.cpp
LinkedList.o: LinkedList.cpp LinkedList.h
g++ -c $(CXXFLAGS) LinkedList.cpp
Queue.o: Queue.cpp Queue.h
g++ -c $(CXXFLAGS) Queue.cpp
Stack.o: Stack.cpp Stack.h
g++ -c $(CXXFLAGS) Stack.cpp
main.o: main.cpp Character.h Barbarian.h BlueMen.h Vampire.h Medusa.h
HarryPotter.h LinkedList.h Queue.h Stack.h
g++ -c $(CXXFLAGS) main.cpp
clean:
-rm *.o
Further information about customizing your makefile can be found here: CFLAGS, CCFLAGS, CXXFLAGS - what exactly do these variables control? 有关自定义makefile的更多信息,请参见: CFLAGS,CCFLAGS,CXXFLAGS-这些变量究竟控制什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.