tmake使用指南(比autoconf,automake更好的选择)

Tmake使用指南


译者:一风(兰州大学高性能计算机试验室 cnyifeng@263.net
    tmake是一个很好用的生成和管理makefile的工具,他是由Trolltech这家公司开发的,用perl写成。Trolltech这家公司的主打产品大家都知道是Qt。

如果不是用tmake来管理makefile的话,那将会是一件痛苦的事情,虽然有autoconf等工具,但毕竟还是十分繁杂的,现在tmake将我们完全从繁琐的生成makefile的过程中解脱出来,只要很简单的步骤就可以生成makefile了。其实tmake原本写了使用在Qt上的,只不过不用Qt,我们也可以享受到他的好处,perl在这里面充分体现了他的强大,我一直以为,perl是一个很好的用于系统管理的语言。如果你会perl的话,你可以自己试着修改tmake。
    由于tmake是基于perl的,所以请你确认你的机子上安装了perl。tmake在windows和unix上都有支持。而且它是免费的。本文以linux为平台讲述。
    好了,下面我开始介绍tmake的安装
1。确认你有perl5以后的版本并安装了(windows用户可选)
2。在linux上解压tmake tar.gz,在windows上解压.zip文件。
3。设置好tmake路径参数(参见下文)
4。加入tmake/bin去你的执行路径。

下面是一些例子:
Unix Bourne shell:

    TMAKEPATH=/local/tmake/lib/linux-g++
    PATH=$PATH:/local/tmake/bin
    export TMAKEPATH PATH

Unix C shell:
    setenv TMAKEPATH /local/tmake/lib/linux-g++
    setenv PATH $PATH:/local/tmake/bin

Microsoft Windows:
    set TMAKEPATH=c:/tmake/lib/win32-msvc
    set PATH=%PATH%;c:/tmake/bin
在上面设置的路径里面有各种平台支持文件和tmake执行文件。
tmake支持的平台有:
   AIX, Data General, FreeBSD, HPUX, SGI Irix, Linux, NetBSD, OpenBSD, OSF1/DEC, SCO, Solaris, SunOS, Ultrix, Unixware and Win32

 UNIX用户请注意:tmake默认的是perl安装在/usr/bin下面,如果你的不是的话,请修改tmake文件第一行的参数。

下面我们开始学习tmake的使用:
我假设你有一个小的qt程序,他由一个C++ header和两个source file组成。首先,你要创建一个tmake工程文件,如:hello.pro
HEADERS   =  hello.h
SOURCES   =  hello.cpp main.cpp
TARGET    =  hello
下面我们来产生makefile
tmake hello.pro -o Makefile
最后我们执行make命令编译hello这个程序。

Makefile模板
Tmake发行版本中有以下三个模板
App.t 用来创建生成发布使用程序的makefile
Lib.t 用来创建生成libraries

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
make: Leaving directory '/home/wanglangtao/frifly/rk3399_linux_release_v2.5.1_20210301/buildroot' 2023-06-07T03:54:43 >>> host-gcc-initial 8.4.0 Building 2023-06-07T03:54:47 >>> host-gcc-initial 8.4.0 Installing to host directory 2023-06-07T03:54:49 >>> host-libtool 2.4.6 Extracting 2023-06-07T03:54:50 >>> host-libtool 2.4.6 Patching 2023-06-07T03:54:50 >>> host-libtool 2.4.6 Updating config.sub and config.guess 2023-06-07T03:54:50 >>> host-libtool 2.4.6 Configuring 2023-06-07T03:54:53 >>> host-libtool 2.4.6 Building 2023-06-07T03:54:54 >>> host-libtool 2.4.6 Installing to host directory 2023-06-07T03:54:55 >>> host-autoconf 2.69 Extracting 2023-06-07T03:54:55 >>> host-autoconf 2.69 Patching 2023-06-07T03:54:55 >>> host-autoconf 2.69 Updating config.sub and config.guess 2023-06-07T03:54:55 >>> host-autoconf 2.69 Patching libtool 2023-06-07T03:54:55 >>> host-autoconf 2.69 Configuring 2023-06-07T03:54:56 >>> host-autoconf 2.69 Building 2023-06-07T03:54:57 >>> host-autoconf 2.69 Installing to host directory 2023-06-07T03:54:57 >>> host-automake 1.15.1 Extracting 2023-06-07T03:54:57 >>> host-automake 1.15.1 Patching 2023-06-07T03:54:57 >>> host-automake 1.15.1 Updating config.sub and config.guess 2023-06-07T03:54:57 >>> host-automake 1.15.1 Patching libtool 2023-06-07T03:54:58 >>> host-automake 1.15.1 Configuring 2023-06-07T03:54:59 >>> host-automake 1.15.1 Building 2023-06-07T03:54:59 >>> host-automake 1.15.1 Installing to host directory 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Extracting 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Patching 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Updating config.sub and config.guess 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Patching libtool 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Configuring 2023-06-07T03:55:00 >>> host-pkgconf 0.9.12 Building 2023-06-07T03:55:01 >>> host-pkgconf 0.9.12 Installing to host directory 2023-06-07T03:55:02 >>> host-libxml2 2.9.7 Extracting 2023-06-07T03:55:02 >>> host-libxml2 2.9.7 Patching 2023-06-07T03:55:02 >>> host-libxml2 2.9.7 Updating config.sub and config.guess 2023-06-07T03:55:02 >>> host-libxml2 2.9.7 Patching libtool 2023-06-07T03:55:02 >>> host-libxml2 2.9.7 Configuring 2023-06-07T03:55:06 >>> host-libxml2 2.9.7 Building 2023-06-07T03:55:22 >>> host-libxml2 2.9.7 Installing to host directory 2023-06-07T03:55:24 >>> host-gettext 0.19.8.1 Extracting 2023-06-07T03:55:25 >>> host-gettext 0.19.8.1 Patching 2023-06-07T03:55:26 >>> host-gettext 0.19.8.1 Updating config.sub and config.guess 2023-06-07T03:55:26 >>> host-gettext 0.19.8.1 Configuring 2023-06-07T03:55:26 >>> host-gettext 0.19.8.1 Autoreconfiguring 2023-06-07T03:55:51 >>> host-gettext 0.19.8.1 Patching libtool 2023-06-07T03:56:13 >>> host-gettext 0.19.8.1 Building什么问题
06-08

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值