zoukankan      html  css  js  c++  java
  • 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

    #...

  • 相关阅读:
    C#动态调用WCF接口(2)
    WCF 动态调用(1)
    WCF信道工厂Channel Factory
    使用 ObjectDataSource 缓存数据
    DatabaseFactory.CreateDatabase 方法操作数据库
    大学毕业4年-回想和总结(5)-投资理財方法论
    用递归法将一个整数n转换成字符串。
    朴素贝叶斯
    Android热补丁技术—dexposed原理简析(阿里Hao)
    SQLAlchemy使用笔记--SQLAlchemy ORM(三)
  • 原文地址:https://www.cnblogs.com/iapp/p/3631772.html
Copyright © 2011-2022 走看看