Windows下使用nmake编译C/C++的makefile


现在大多时候在Linux上做服务器端开发,使用VC的机会少了很多。

VC编程时习惯上会间个小工程去测试一些小段代码,确保正确后在移植到真正的工程上去。自觉这是个好习惯,决定继续沿用。

公司开发环境不提供VC,自己也懒得动用复杂的IDE,想想还是启用nmake。

研究了一番nmake的makefile规则,编写了了一个通用makefile。用下来还相当好用。

存个档,作个分享交流。


 

#宏定义
EXE = test.exe #指定输出文件名
OBJS = main.obj  #需要的目标文件;个人习惯把测试代码写在main.cpp,所以这里相应的OBJ文件是main.obj
RES = #需要的资源文件,如 test.res 
LIBS = ws2_32.lib #个人较常用网络编程API,所以加上Winsock的静态库

LINK_FLAG = /DEBUG /subsystem:console #连接选项;启用DEBUG模式;使用控制台。
CL_FLAG = /EHsc /c /Zi /Tp #编译选项,选了部分必要的CL选项,详细解释可查MSDN。

#显示规则
$(EXE): $(OBJS) $(RES)
  link $(LINK_FLAG) $(OBJS) $(RES) $(LIBS) /OUT:$(EXE)

#隐含规则
.cpp.obj:
  cl $(CL_FLAG) $<

.rc.res:
  rc $<

#清临时文件
clean:
  del *.obj
  del *.exe
  # del *.res

 


另外:为方便练习使用boost, 可设置环境变量BOOST和BOOST_LIB,分别指向boost根目录以及库文件目录,然后略加修改一下makefile

 


 

#...

LINK_FLAG = /LIBPATH:$(BOOST_LIB) /DEBUG /subsystem:console 
ML_FLAG = /D_WIN32_WINNT=0x0601 /I$(BOOST) /EHsc /c /Zi /Tp

#...

windows下安装perl模块方法和必备软件nmake dmake devcpp: 方式一: 将 nmake.exe 放到system32目录下 用一下方式: perl Makefile.pl nmake nmake test nmake install 如果成功,将不用看下面内容。 方式二: 手动编译方式 优点:通吃所有模块 缺点:有点麻烦 具体步骤:1安装编译器2设置编译器的环境变量3可能安装dmake 具体方法:如下 1.首先要有个c编译器,推荐dev-cpp(开源免费的,网上自己搜索),记得要下含有mingw的就是了(不懂c,下载含有mingw的因为这个版本的bin目录里有gcc.exe等工具). 1.1安装好了编译器之后,要能在cmd中以命令方式运行的话,必须要设置环境变量,在winxp中[我的电脑]->[属性]->[高级]->[环境变量]里设置,只需要在path里加个你路径,比如你的安装路径是c:\dev-cpp,那你就要加上c:\dev-cpp\bin (path中有很多其他的路径,之间记得用;隔开 )弄完好,在cmd中运行gcc -v 显示出内容表示编译器安装成功,并且可以用命令行编译. 2.编译步骤,在cpan上下载需要的模块,比如Win32::SerialPort,下载好了解压,在cmd中进入这个目录(简单的dos命令应该知道吧),就用常见的方法: perl Makefile.pl make make test make install 如果成功,将不用看下面内容。 方式三: 使用方式二make很可能会出现错误,不能编译,找了很多原因,有高人介绍了解决办法,就是下载一个叫dmake的工具,解压缩,将里面的dmake.exe和startup的文件夹(好象是这个名字)一起复制到c:\dev-cpp\bin 里(因为这个目录注册到环境变量里的),之后安装改成: perl Makefile.pl dmake dmake test dmake install 注意: 如果安装过oracle10g你将会发现出现版本冲突的情况。 解决方案如下:修改%PERL5LIB%环境变量,修改为perl所在目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值