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都会被删除。

  • 相关阅读:
    用php做了下冒泡排序
    安装xampp无法设置默认时间的坑
    PHP的静态变量和引用函数
    jquery.cookie.js 用法
    PhpStorm的open in browser怎么修改端口和相对路径
    springmvc上传图片并显示图片--支持多图片上传
    Spring MVC中处理静态资源的多种方法
    超强、超详细Redis数据库入门教程(转载)
    推荐60个jQuery插件(转)
    [Spring MVC]
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/4535327.html
Copyright © 2011-2022 走看看