【wxWidgets】提供一个适合wxWidgets的makefile

来源:互联网 发布:莱芜黑猪肉淘宝专卖店 编辑:程序博客网 时间:2024/05/07 19:03

最近研究如何使用wxWidgets进行快速应用程序开发的时候,为了方便写了一个makefile,然后扩展了一下。

使用方法如下:

make projectmakemake clean
 

解释:
make project 会在当前目录下创建src、obj、src/headers、src/sources,然后将目录下的所有后缀为.cpp的文件移动至src/sources,将所有后缀为.h的文件移动至src/headers;接下来make执行编译过程;make clean会将obj文件夹下的后缀为.o的文件全部删除。


注意:

1.这里使用到了wx-config这个实用程序。如果PATH下面没有的话请添加;如果没有wx-config,请下载。

2.如果是windows系统下,可能需要编译资源文件,可以用windres编译,然后在makefile中添加相关编译命令。

 


##################################################################### This is a makefile that is suitable for wxWidgets## You need to modify some options below and just type 'make' in# terminal.#                             ---- created by misskanagi 2013/9/4####################################################################basic configuration and compiler flagsSHELL = /bin/shCC    = gccXX= g++RES= windresDEBUGFLAGS= -gRELEASEFLAGS= -O2 -sRESOURCEFLAGS= `wx-config --rcflags`INCLUDES= -Isrc/headers/CXXFLAGS=  -Wall -Wextra `wx-config --cxxflags` $(INCLUDES)LIBS= `wx-config --libs core,base,richtext,adv,html,xml` -s -mwindows#directory variablesOBJDIR= obj/HEADERDIR= src/headers/SOURCEDIR= src/sources/#sources and objects variablesTARGET= NumGameSOURCES= $(shell echo $(SOURCEDIR)*.cpp)HEADERS= $(shell echo $(HEADERDIR)*.h)OBJECTS= $(subst $(SOURCEDIR),$(OBJDIR),$(SOURCES:.cpp=.o))###################################################################### WARNING:# DO NOT MODIFY REST OF THIS FILE UNLESS YOU KOWN WHAT YOU ARE DOING!######################################################################commandall: $(TARGET)$(TARGET): $(OBJECTS)$(XX) $(CXXFLAGS) $(DEBUGFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)release: $(SOURCES) $(HEADERS)$(XX) $(CXXFLAGS) $(RELEASEFLAGS) -o $(TARGET) $(SOURCES) $(LIBS)$(OBJDIR)%.o: $(SOURCEDIR)%.cpp $(HEADERS)$(XX) $(CXXFLAGS) $(DEBUGFLAGS) -c -o $@ $<project: *.h *.cpp-mkdir obj-mkdir src-mkdir src/headers-mkdir src/sourcesmv *.h src/headersmv *.cpp src/sources$(TARGET).app:Info.plist $(TARGET) $(TARGET).icns-mkdir $(TARGET).app-mkdir $(TARGET).app/Contents-mkdir $(TARGET).app/Contents/MacOS-mkdir $(TARGET).app/Contents/Resourcescp Info.plist $(TARGET).app/Contents/cp $(TARGET) $(TARGET).app/Contents/MacOS/$(TARGET)cp $(TARGET).icns $(TARGET).app/Contents/Resources/.PHONY : all release clean distclean projectclean:-rm -f $(TARGET)-rm -f $(OBJECTS)distclean: clean-rm -f $(TARGET)


原创粉丝点击