博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
buildconfiguration[C/C++]_[从netbeans里提取的通用构建C++项目的Makefile文件]
阅读量:5745 次
发布时间:2019-06-18

本文共 11098 字,大约阅读时间需要 36 分钟。

发一下牢骚和主题无关:

    

    1.有了这个配置文件,你可以用任何ide或文本编辑器,除了不支持makefile的ide。

    2.makefile的利益不用说吧,不依赖ide,如果g++或ide更新了的话makefile什么都不需要做。但是基于项目文件的编译配置就难了,比如vs2010项目如果想用vs2005编译的话。。。。

    3.makefile从编译到链接选项都可以自己控制。

    4个文件,当然有时间的话也可以自己改改减少数量,自己删除注释吧。build和configuration

    主 Makefile,放在项目根目录下.

##  There exist several targets which are by default empty and which can be #  used for execution of your targets. These targets are usually executed #  before and after some main targets. They are: ##     .build-pre:              called before 'build' target#     .build-post:             called after 'build' target#     .clean-pre:              called before 'clean' target#     .clean-post:             called after 'clean' target#     .clobber-pre:            called before 'clobber' target#     .clobber-post:           called after 'clobber' target#     .all-pre:                called before 'all' target#     .all-post:               called after 'all' target#     .help-pre:               called before 'help' target#     .help-post:              called after 'help' target##  Targets beginning with '.' are not intended to be called on their own.##  Main targets can be executed directly, and they are:#  #     build                    build a specific configuration#     clean                    remove built files from a configuration#     clobber                  remove all built files#     all                      build all configurations#     help                     print help mesage#  #  Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and#  .help-impl are implemented in nbproject/makefile-impl.mk.##  Available make variables:##     CND_BASEDIR                base directory for relative paths#     CND_DISTDIR                default top distribution directory (build artifacts)#     CND_BUILDDIR               default top build directory (object files, ...)#     CONF                       name of current configuration#     CND_PLATFORM_${CONF}       platform name (current configuration)#     CND_ARTIFACT_DIR_${CONF}   directory of build artifact (current configuration)#     CND_ARTIFACT_NAME_${CONF}  name of build artifact (current configuration)#     CND_ARTIFACT_PATH_${CONF}  path to build artifact (current configuration)#     CND_PACKAGE_DIR_${CONF}    directory of package (current configuration)#     CND_PACKAGE_NAME_${CONF}   name of package (current configuration)#     CND_PACKAGE_PATH_${CONF}   path to package (current configuration)## NOCDDL# Environment MKDIR=mkdir -pCP=cpCCADMIN=CCadmin# buildbuild: .build-init .build-post.build-init:.build-pre:# Add your pre 'build' code here...	windres --input-format=rc -O coff -i resources/style.rc -o build/style.o --define __WXMSW__ --include-dir E:/software/Lib/gui/wxWidgets-2.9.2/include	.build-post: .build-impl# Add your post 'build' code here...	${CP} E:/software/Lib/gui/wxWidgets-2.9.2/win32/release/share/wxmsw292u_adv_gcc_custom.dll dist/Debug/MinGW-Windows/	${CP} E:/software/Lib/gui/wxWidgets-2.9.2/win32/release/share/wxmsw292u_core_gcc_custom.dll dist/Debug/MinGW-Windows/	${CP} E:/software/Lib/gui/wxWidgets-2.9.2/win32/release/share/wxbase292u_gcc_custom.dll dist/Debug/MinGW-Windows/	${CP} E:/software/MinGW/bin/libgcc_s_dw2-1.dll dist/Debug/MinGW-Windows/	# cleanclean: .clean-post.clean-pre:# Add your pre 'clean' code here....clean-post: .clean-impl# Add your post 'clean' code here...# clobberclobber: .clobber-post.clobber-pre:# Add your pre 'clobber' code here....clobber-post: .clobber-impl# Add your post 'clobber' code here...# allall: .all-post.all-pre:# Add your pre 'all' code here....all-post: .all-impl# Add your post 'all' code here...# build testsbuild-tests: .build-tests-post.build-tests-pre:# Add your pre 'build-tests' code here....build-tests-post: .build-tests-impl# Add your post 'build-tests' code here...# run teststest: .test-post.test-pre:# Add your pre 'test' code here....test-post: .test-impl# Add your post 'test' code here...# helphelp: .help-post.help-pre:# Add your pre 'help' code here....help-post: .help-impl# Add your post 'help' code here...# include project implementation makefileinclude nbproject/Makefile-impl.mk# include project make variablesinclude nbproject/Makefile-variables.mk

    根目录下建nbproject文件夹,放入以下文件。

    Makefile-variables.mk 这个文件不需要管

## Generated - do not edit!## NOCDDL#CND_BASEDIR=`pwd`CND_BUILDDIR=buildCND_DISTDIR=dist# Debug configurationCND_PLATFORM_Debug=MinGW-Windows# Release configurationCND_PLATFORM_Release=MinGW-Windows

    Makefile-impl.mk 这个文件不需要管

    每日一道理
爱,有的时候不需要山盟海誓的承诺,但她一定需要细致入微的关怀与问候;爱,有的时候不需要梁祝化蝶的悲壮,但她一定需要心有灵犀的默契与投合;爱,有的时候不需要雄飞雌从的追随,但她一定需要相濡以沫的支持与理解。
# # Generated Makefile - do not edit! # # Edit the Makefile in the project folder instead (../Makefile). Each target# has a pre- and a post- target defined where you can add customization code.## This makefile implements macros and targets common to all configurations.## NOCDDL# Building and Cleaning subprojects are done by default, but can be controlled with the SUB# macro. If SUB=no, subprojects will not be built or cleaned. The following macro# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf# and .clean-reqprojects-conf unless SUB has the value 'no'SUB_no=NOSUBPROJECTS=${SUB_${SUB}}BUILD_SUBPROJECTS_=.build-subprojectsBUILD_SUBPROJECTS_NO=BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}CLEAN_SUBPROJECTS_=.clean-subprojectsCLEAN_SUBPROJECTS_NO=CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}# Project NamePROJECTNAME=# Active ConfigurationDEFAULTCONF=DebugCONF=${DEFAULTCONF}# All ConfigurationsALLCONFS=Debug Release # build.build-impl: .build-pre .validate-impl .depcheck-impl	@#echo "=> Running $@... Configuration=$(CONF)"	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf# clean.clean-impl: .clean-pre .validate-impl .depcheck-impl	@#echo "=> Running $@... Configuration=$(CONF)"	"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf# clobber .clobber-impl: .clobber-pre .depcheck-impl	@#echo "=> Running $@..."	for CONF in ${ALLCONFS}; \	do \	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \	done# all .all-impl: .all-pre .depcheck-impl	@#echo "=> Running $@..."	for CONF in ${ALLCONFS}; \	do \	    "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \	done# build tests.build-tests-impl: .build-impl .build-tests-pre	@#echo "=> Running $@... Configuration=$(CONF)"	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf# run tests.test-impl: .build-tests-impl .test-pre	@#echo "=> Running $@... Configuration=$(CONF)"	"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf# dependency checking support.depcheck-impl:	@echo "# This code depends on make tool being used" >.dep.inc	@if [ -n "${MAKE_VERSION}" ]; then \	    echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \	    echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \	    echo "include \$${DEPFILES}" >>.dep.inc; \	    echo "endif" >>.dep.inc; \	else \	    echo ".KEEP_STATE:" >>.dep.inc; \	    echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \	fi# configuration validation.validate-impl:	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \	then \	    echo ""; \	    echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \	    echo "See 'make help' for details."; \	    echo "Current directory: " `pwd`; \	    echo ""; \	fi	@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \	then \	    exit 1; \	fi# help.help-impl: .help-pre	@echo "This makefile supports the following configurations:"	@echo "    ${ALLCONFS}"	@echo ""	@echo "and the following targets:"	@echo "    build  (default target)"	@echo "    clean"	@echo "    clobber"	@echo "    all"	@echo "    help"	@echo ""	@echo "Makefile Usage:"	@echo "    make [CONF=
] [SUB=no] build" @echo " make [CONF=
] [SUB=no] clean" @echo " make [SUB=no] clobber" @echo " make [SUB=no] all" @echo " make help" @echo "" @echo "Target 'build' will build a specific configuration and, unless 'SUB=no'," @echo " also build subprojects." @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no'," @echo " also clean subprojects." @echo "Target 'clobber' will remove all built files from all configurations and," @echo " unless 'SUB=no', also from subprojects." @echo "Target 'all' will will build all configurations and, unless 'SUB=no'," @echo " also build subprojects." @echo "Target 'help' prints this message." @echo ""

    Makefile-Debug.mk 往里添加编译文件和编译链接参数,如果是Release,添加一个Makefile-Release.mk文件,把Debug替换为Release便可。

## Generated Makefile - do not edit!## Edit the Makefile in the project folder instead (../Makefile). Each target# has a -pre and a -post target defined where you can add customized code.## This makefile implements configuration specific macros and targets.# EnvironmentMKDIR=mkdirCP=cpGREP=grepNM=nmCCADMIN=CCadminRANLIB=ranlibCC=gcc.exeCCC=g++.exeCXX=g++.exeFC=gfortran.exeAS=as.exe# MacrosCND_PLATFORM=MinGW-WindowsCND_CONF=DebugCND_DISTDIR=dist# Include project Makefileinclude Makefile# Object DirectoryOBJECTDIR=build/${CND_CONF}/${CND_PLATFORM}# Object FilesOBJECTFILES= \	${OBJECTDIR}/src/my_app.o \	${OBJECTDIR}/src/my_frame.o# C Compiler FlagsCFLAGS=# CC Compiler FlagsCXXFLAGS=-D_LARGEFILE_SOURCE=unknown -DwxDEBUG_LEVEL=0 -DWXUSINGDLL -D__WXMSW__ -mthreads -m32 -Wall  -MMD -MP -MF $@.d  CPPFLAGS=\-IE:/software/Lib/gui/wxWidgets-2.9.2/include \-IE:/software/Lib/gui/wxWidgets-2.9.2/win32/release/share/include \-Iinclude# Fortran Compiler FlagsFFLAGS=# Assembler FlagsASFLAGS=# Link Libraries and OptionsLDLIBSOPTIONS= \-Wl,--subsystem,windows -mwindows \-LE:/software/Lib/gui/wxWidgets-2.9.2/win32/release/share  \-lwx_mswu_adv-2.9 -lwx_mswu_core-2.9 -lwx_baseu-2.9 \build/style.o# Build Targets.build-conf: ${BUILD_SUBPROJECTS}	"${MAKE}"  -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/test_wx.exedist/Debug/MinGW-Windows/test_wx.exe: ${OBJECTFILES}	${MKDIR} -p dist/Debug/MinGW-Windows	${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/test_wx -Wl,-s ${OBJECTFILES} ${LDLIBSOPTIONS} ${OBJECTDIR}/src/my_app.o: src/my_app.cpp 	${MKDIR} -p ${OBJECTDIR}/src	${RM} $@.d	$(COMPILE.cc) -o ${OBJECTDIR}/src/my_app.o src/my_app.cpp${OBJECTDIR}/src/my_frame.o: src/my_frame.cpp 	${MKDIR} -p ${OBJECTDIR}/src	${RM} $@.d	$(COMPILE.cc) -o ${OBJECTDIR}/src/my_frame.o src/my_frame.cpp# Subprojects.build-subprojects:# Clean Targets.clean-conf: ${CLEAN_SUBPROJECTS}	${RM} -r build/Debug	${RM} dist/Debug/MinGW-Windows/test_wx.exe# Subprojects.clean-subprojects:# Enable dependency checking.dep.inc: .depcheck-implinclude .dep.inc

    会Makefile一点道理的会知道往哪里添加编译项。

    参考例子的配置下载链接:

    

    

文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗   

  写字楼里写字间,写字间里程序员;
  程序人员写程序,又拿程序换酒钱。
  酒醒只在网上坐,酒醉还来网下眠;
  酒醉酒醒日复日,网上网下年复年。
  但愿老死电脑间,不愿鞠躬老板前;
  奔驰宝马贵者趣,公交自行程序员。
  别人笑我忒疯癫,我笑自己命太贱;
  不见满街漂亮妹,哪个归得程序员。

--------------------------------- 原创文章 By

build和configuration
---------------------------------

你可能感兴趣的文章
分布式服务框架原来与实践 读书笔记一
查看>>
【http】post和get请求的区别
查看>>
TFS强制撤销某个工作区的文件签出记录
查看>>
EL表达式无法显示Model中的数据
查看>>
ps6-工具的基础使用
查看>>
linux下使用过的命令总结(未整理完)
查看>>
时间助理 时之助
查看>>
英国征召前黑客组建“网络兵团”
查看>>
PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
查看>>
pyjamas build AJAX apps in Python (like Google did for Java)
查看>>
centos5.9使用RPM包搭建lamp平台
查看>>
Javascript String类的属性及方法
查看>>
[LeetCode] Merge Intervals
查看>>
Struts2 学习小结
查看>>
测试工具综合
查看>>
【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
Visifire charts ToolBar
查看>>
Mysql查询
查看>>
数据传输流程和socket简单操作
查看>>