MPC 使用心得

来源:互联网 发布:中国网络环境现状知乎 编辑:程序博客网 时间:2024/05/06 01:39
有三个工程:
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




原创粉丝点击