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

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

我在实践的过程中,把”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都会被删除。

时间: 2024-08-10 11:26:44

windows环境中利用NMake工具编译连接C++源代码的相关文章

Windows环境中,通过Charles工具,抓取安卓手机、苹果手机中APP应用的http、https请求包信息

Windows环境中,通过Charles工具,抓取安卓手机.苹果手机中APP应用的http.https请求包信息1.抓取安卓手机中APP应用的http请求包信息1)在电脑上操作,查看Windows机器IP地址:cmd->ipconfig 在返回的结果中,查询得到IPv4地址. a)如果你的Windows机器是通过无线方式上网,则选择 无线局域网适配器 中的IPv4中IP地址. b)如果你的Windows机器是通过有线方式上网,则选择 以太网适配器 中的IPv4中IP地址. 2)在手机上操作,在你

Windows环境下利用github快速配置git环境

在windows环境下利用github客户端我们可以直接拥有可视化的界面来管理工程,当然你也可以选择你喜欢的命令行工具来做.今天我分享一个比较快速的方式来配置git环境. 先去下载github的windows客户端:https://windows.github.com/ 下载完安装后其实就搞定了一大半了.接下来我们把: C:\Users\[你的用户名]\AppData\Local\GitHub\PortableGit_c2ba306e一大串数字\bin C:\Users\[你的用户名]\AppD

Windows环境下使用cygwin ndk_r9c编译FFmpeg

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,一步步来.先来讲一下FFmpeg,网上说的很多都是几百年前的,我亲测完美可用 联系我可以直接评论,也可以加我QQ:11635423  二.干货  我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处. 几个概念理解一下:不理解也没关系.用了之后再说慢慢就理解了.主要是因为我们是windows 先是cygwin下的一些概念:        unix st

如何在windows环境中搭建apache+subversion(ZT)

我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵,可是慢慢觉得这样每次用file://的形式去访问subversion好原始哦.昨天我下定决心一定要把apache+subversion的环境搭建起来.nnd居然我从9:00~18:00才搞定这个.为什么弄了那么就呢其实就是因为subversion的服务器端的版本是1.5和客户端的是1.6.4版本,

解决windows环境中python2.7'ascii' codec can't encode character

在python2.7下,将字符串写入到文件时会出现"UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position"的错误,原因是由于python基于ASCII处理字符的,当出现不属于ASCII的字符时,会出现错误信息. 原因是pip安装python包会加载我的用户目录,我的用户目录恰好是中文的,ascii不能编码.解决办法是: python目录 Python27\Lib\site-package

Windows环境下使用Cmake ndk编译fdk-aac

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.联系我可以直接评论,也可以加我QQ:11635423  二.干货  准备:1.fdk_aac的源码  git clone https://android.googlesource.com/platform/external/aa

Windows环境下使用cygwin ndk_r9c编译x264

 一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.联系我可以直接评论,也可以加我QQ:11635423  二.干货  准备:1.x264的源码 2.cygwin下载,安装,这个网上基本都有.我不讲太多.git cygdrive bash make 这几个都需要下载 3.ndk我

在VS2103环境中集成Doxygen工具

自己已将学习了两三次了吧,差不多这次该总结一下: Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C.C++.Java.Objective-C和IDL语言,部分支持PHP.C#.注释的语法与Qt-Doc.KDoc和JavaDoc兼容.Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX.RTF参考手册. Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件.通常我们在写程序时,或多或少都会写上批注,但

在Windows环境中学习Linux

如何在Windows环境下学习Linux?方法如下: 方法一: 下载Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境,网上有很多安装教程,这里不多说. 方法二: 下载一个虚拟机,比如免费的Virtual Box以及收费的VM ware,然后在虚拟机内安装一个linux系统. 方法三: 下载msysGit, 才十几兆,  这本是一个Git软件, 但支持linux基本命令, 支持vim. 对于想学linux, vim, git的人来说, 这是易得的绝佳工具. 方法四: