解决跨平台系统的工程文件方案(MPC)

最近的项目有 windowssolaris 两个版本。其中 windows 下用的编译器是 visual studio 2005

Solaris 下的是 CC 。我们现在的方案是先在 visual studio 2005 下测试通过。然后使用 MPC

Make Project Creator 生成 vcprojsolaris 下的 makefile 文件。最后再对这两个工程文件进行测试。

MPC 是一个开源项目,采用 perl 语言编写。使用 MPC 只需写一次 mpc 文件即可非常容易的生成 vcproj( 支持 vc6 – vc9) 文件和 makefile 、语法也不复杂。 ACE 的工程文件就是用的这个东西。十分适合跨平台的项目。

MPC 使用

在工程根目录下创建 MPC/config/MPC.cfg 文件,文件内容为:

Default_type=make

Dynamic_type=$Test_root/bin/mpcfile,/home/test/MPC

Logging=info=1 warn=1

Verbose_ordering=1

1 行注明了生成工程文件的类型,在这里是 makefile

2 行引用了两个地方的 project 定义 (MPC 文件 ) ,有了这一行,则工程文件中任意位置的 mpc 文件都可以引用上面两个地方 ( 包含子目录 )mpcmpb 文件了。

mpc 文件是可以继承的。示例如下:

project(mod1):modob{

       exename=”mod1”

       exeout=”../../bin”

       includes+=”../../include/mod1”

      

       Source_Files{

              *.cpp

       }

       Header_Files{

              *.h

       }

}

其中 exename 为生成文件的名称, exeout 为生成的文件的路径, includes 为头文件包含的路径。

还有libout(lib文件输出路径), dllout(动态链接库输出路径), sharedname(动态链接库名称)

Mpb 文件主要是用来描述一些公共的信息 ( 如公共头文件,动态库 ) ,如:

Project {

       Includes += ../../include/common

       Libpaths+=”../../lib”

}

完成上面文件之后,输入命令: mwc.pl 即可生成工程文件

注意:在路径中切不可包含空格

mwc.pl -static 生成静态库

在MPC文件中可以加上 avoids += shared

这样就能避免生成动态的工程了(exe或dll)


MPC使用介绍

 
MPC是 ACE中附带的一个很有用的Makefile工具,简单的说MPC可以通过一个单一的定义文件,生成各种开发环境需要的Makefile,VC工程文件,并且可以通过自行扩展适合各种开发环境需要的工程文件。

编写一个MWC和MPC文件

hello.mwc例子

						// -*- MPC -*-
workspace {
  hello.mpc}

hello.mpc例子

						// -*- MPC -*-
project(hello):aceexe, acexml, avoids_ace_for_tao {
  exename = hello
  avoids += uses_wchar
 
  Source_Files {
    hello.cpp}}

mwc可以看作是workspace定义,mpc可以看作是project定义,一个workspace可以包含多个project,并且可以定义多个project之间的依赖关系,详细的语法可以参考后面提供的参考资料。

生成Makefile

生成Makefile

$ACE_ROOT/bin/mwc.pl -type make hello.mwc

生成VC2008工程文件

$ACE_ROOT/bin/mwc.pl -type vc9 hello.mwc

同时生成多个工程文件

$ACE_ROOT/bin/mwc.pl -type make -type vc9 hello.mwc

同时生成vc9的静态和动态库工程文件,并且通过工程名称予以区别

$ACE_ROOT/bin/mwc.pl -type vc9 -ti lib:vc9lib -name_modifier *_lib_vc9 hello.mwc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值