MPC相关

来源:互联网 发布:qq游戏无法连接网络 编辑:程序博客网 时间:2024/05/19 03:17

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

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

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

Make Project Creator 生成vcproj和solaris下的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文件都可以引用上面两个地方(包含子目录)的mpc或mpb文件了。

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)

原创粉丝点击