zoukankan      html  css  js  c++  java
  • windows环境中利用NMake工具编译连接C++源代码

      这篇文章是上一篇文章(http://www.cnblogs.com/LCCRNblog/p/4532643.html)的补充,因此需要先看看上一篇文章。

      最近在写代码的时候,需要通过命令的方式来执行生成的c++源代码文件,因此需要学习有关windows环境下如何使用命令来编译连接c++原文件。这一篇文章是自己慢慢摸索实践得出的。作为自己入门的起点吧,后续还要好好深入理解这方面的知识。

    1、准备

    编写好main.cpp header.h header.cpp这三个源代码文件,并放入一个文件夹test中。

    2、编写NMake文件

    在test文件夹中创建hello.mk文件,并写入如下脚本

    foo :main.obj header.obj
        cl.exe -EHsc main.obj header.obj -o foo
    main.obj:main.cpp
        cl.exe -EHsc -c main.cpp
    header.obj:header.h header.cpp
        cl.exe -EHsc -c header.cpp 
    clean:
        del *.obj *.exe

    注意脚本中空格需要保留,不能随意添加和删除。至于为什么,我暂时也不太清楚,后续慢慢了解学习。

    -----------------------------------------------------------------------------补充 2015年5月29日17:17:56------------------------------------------------

    第二行cl.exe -EHsc main.obj header.obj -o foo,这一行-o之前的参数都是传递个cl.exe的,-o之后的参数(包括-o)是传递个Link.exe的。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    我在实践的过程中,把”header.obj:header.h header.cpp“这一行中的header.h去掉,重新执行这个脚本文件,任然能够通过,这个原因我暂时还不太清楚,因为我也只是刚刚接触这方面的知识,还需要进一步的尝试,进一步的理解其中的原理。

    然后在打开cmd,定位到test文件路径,首先执行vcvarsall.bat(方法在上一篇文章中有涉及),然后执行如下命令

    NMake /f hello.mk

    在test文件夹中就会生成foo.exe可执行文件。

    如果执行如下命令

    NMake /f hello.mk clean

    则在test文件夹中生成的所有*.obj和*.exe都会被删除。

  • 相关阅读:
    实现毛玻璃效果
    iOS-调用系统的短信和发送邮件功能,实现短信分享和邮件分享
    集成环信
    HTTP 方法:GET 对比 POST
    虚拟DOM
    javascript的回调函数 同步 异步
    jQuery中的Deferred和promise
    web性能
    JSONP
    java
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/4535327.html
Copyright © 2011-2022 走看看