分类: LINUX
2008-10-02 15:35:25
对于一个精通makfile的编程老鸟来说,写一个makefile,添加ACE头文件目录和库文件目录是相当容易的事情。但是对于笔者这样的懒人,平时做项目都是直接拷贝的别的项目的makfile,也懒得去研究makefile的细节.(哈哈,忽然有些怀念VC这样的IDE)。ACE给我们做了很多事,同样也考虑到了懒人们,懒人们可以使用ACE安装包里自带的perl脚本来自动生成makefile,当然,你必须做的是定义一个mpc文件,然后用这个perl脚本来执行这个mpc文件。
怎样定义一个mpc文件呢, 在$ACE_ROOT/tests目录下有一个tests.mpc,这是一个很好的参考例子,$ACE_ROOT/tests下的所有例程的makfile都是根据这个tests.mpc文件来生成的,把tests.mpc打开来研究一下,自己也能轻易的定义这种格式的文件了。这里举两个简单的例子,使用关键字exename来定义编译产生应用程序的makefile, 使用sharedname来定义编译产生库文件的makefile。
先让我们来看一个典型的mpc文件
|
例1,编译应用程序
新建一个cpp文件hello_world.cpp;
|
新建一个mpc文件hello_world.mpc;
|
执行命令: $ACE_ROOT/bin/mpc.pl -type make hello_world.mpc;
产生一个后缀为Hello_World的makfile文件: Makefile.Hello_World;
编译: make –f Makefile.Hello_World
产生可执行程序hello
例2, 编译库文件
建立两个源文件如下:
|
|
建立hello.mpc
|
安装例1的方式操作,会在$ACE_ROOT/lib下产生名为libhello.so的库文件。
通过mpc.pl产生的makefile文件,也可以根据需要加以修改,做成满足自己需要的模板,以后就一劳永逸了,哈哈