做一些跨平台或者大点的应用,不光大家个人的技术能力要强,系统的设计要完善,作为编译代码管理也是非常重要的一块,现以wxWidgets在windows下应用的编译环境举例说明。
不论是GCC的make或VC的nmake都是会对某个项目的makefile去进行检查和产生编译。当然如果不怕麻烦,可以在一个命令行里一个文件一个文件去编译。而这里则是要使用bakefile对基于wxWidgets的应用进行编译。
首先在windows中需要包含wxWidgets的bkl文件应为%WX_WIDGETS%\build\bakefiles\wxpresets\presets\wx.bkl,所以用一个bat文件来简化相关操作。如:bake.bat
@echo off
if "%1"=="" goto ERROR
if not "%2"=="" goto ERROR
set WX_WIDGETS=wxWidgets-2.8.7
set WX_DEFINES=-IC:\works\%WX_WIDGETS%\build\bakefiles\wxpresets -DWX_DIR=C:\works\%WX_WIDGETS% -DWX_UNICODE=1
if "%1"=="release" goto RELEASE
:DEBUG
bakefile build.bkl -f msvc -o Makefile -DWX_DEBUG=1 -DWX_SHARED=1 -DBUILD=debug -DBUILDDIR=Debug %WX_DEFINES%
goto END
:RELEASE
bakefile build.bkl -f msvc -o Makefile -DWX_DEBUG=0 -DWX_SHARED=0 -DBUILD=release -DBUILDDIR=Release %WX_DEFINES%
goto END
:ERROR
echo Usage: bake [debug / release]
:END
放在和项目的bkl文件一块的地方。
然后创建build.bkl文件
on
off
on
off
off
speed
max
no
dynamic
static
$(DEBUGINFO)
$(DEBUGRUNTIME)
$(OPTIMIZEFLAG)
$(WARNINGS)
/DWXUSINGDLL
multi
$(RUNTIMELIBRARY)
net
core
base
console
server/include
$(fileList('server/db/test/*.cpp'))
按以上的步骤,将相关设置在更改后,那么所有的项目成员都不需要因为vs中的input lib,dirs等问题困扰了。
试试bake release后,查看一下Makefile.vc的内容对不对,同时nmake就可以看到编译过程了.
阅读(1934) | 评论(0) | 转发(0) |