您的位置:首页 > 其它

MPC 使用心得

2013-07-24 19:54 302 查看
有三个工程:

utility

add

test

依赖关系:

test -> add -> utility

目录结构

test-- (test.mwc、test.mpc)

|

------base_mpb (base_project.mpb)

|

------add (add.mpc)

|

------utility (utility.mpc)

各文件内容如下:

base_project.mpb

project {

specific(vc8, make) { // 此行末的大括号必须保留在本行的行尾,否则MPC生成makefile时出错

dynamicflags = BUILDING_DLL // 定义宏

}

// 其它细节的设置,请参考 docs\templates\common.txt 文件的定义,使用示例如下

specific { // specific后省略括号,对所有makefile均生效

Release::lib_modifier =

Debug::lib_modifier =

}

libout = F:/msys/home/test/bin

}

utility.mpc:

project(utility) : base_project { //所有从base_project继承的project 均继承其属性

sharedname = utility

dynamicflags = BUILDING_DLL

Header_Files {

utility.h

}

Source_Files {

utility.cpp

}

}

add.mpc:

project(add) : base_project {

sharedname = add // 动态的文件名

after += utility // 建立依赖关系,add必须在utility编译完后再编译

includes += ../utility // 新增的包含头文件的搜索目录

// 其它细节的设置,请参考 docs\templates\common.txt 文件的定义,使用示例如下

specific(make) { // 只对make生效

Release::linkflags = -O ../bin/libutility.so // 连接时新加的选项(下同)

Debug::linkflags = -O ../binlibutility.so

}

Header_Files {

add.h

}

Source_Files {

add.cpp

}

}

test.mpc

project(test) : base_project {

after += add

exeout = ./bin

exename = test

specific(make) {

Release::linkflags = -O ./bin/libadd.so

Debug::linkflags = -O ./bin/libadd.so

}

specific(vc8) {

libs += add

libpaths += bin

}

Source_Files {

test.cpp

}

}

test.mwc

workspace(test) {

./base_mpb // 列出所有的mpb、mpc,甚至mwc文件

./utility/utility.mpc

./add/add.mpc

test.mpc

}

使用mwc的方法:

MinGw: perl /f/dev_tools/MPC_3_9_0/MPC/mwc.pl -include ./base_mpb/ -type make test.mwc

Windows: mwc.pl -include base_mpb -type vc8 test.mwc
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: