Virtual Studio 2008环境实现Makefile编译方式

VC6.0安装与汉化实战:解决路径、兼容性与IDE崩溃问题 Visual C++ 6.0 是一款基于 Win32 API 的经典 C/C++ 开发环境,其核心价值在于生成零依赖的原生 PE 可执行文件,完美适配 Windows XP/2000/98 等老旧系统,在军工仿真、高校教学及工控嵌入式等强兼容性场景中仍具不可替代性。它不依赖现代运行时库(如 vcruntime140.dll),规避了高版本 VS 在旧平台上的 API 缺失风险(如 GetTickCount64)。然而,实际部署常受制于安装路径含空格或中文导致的 cl.exe 头文件查找失败(C1083)、M 阅读详情

微软的东西都很好用,特别是Virtual Studio 这套开发环境,让程序员最大限度的把精力集中在代码上,而不是花太多的功夫来配置编译环境,了解编译器特性,你只用建个工程写几行代码,然后F5 程序就以调试方式运行了,非常方便。但如果哪一天离开了VS ,我们能否写出同样的程序呢?总是听前辈讲不要依赖于具体环境、不要依赖于具体语言,他们都只是工具,重要的是思想,那么好吧,今天我们就通过Makefile 的方式来体会一下编译的思想。

言归正传,首先说一下需要的工具。打开< 你的安装位置>/Microsoft Visual Studio 9.0/VC/bin 目录,看到一堆可执行程序,只解释我们要用的:

cl.exe :C/C++ 编译器,通常在VC 环境中的“编译”选项执行的程序,会生成一堆OBJ 文件

link.exe :连接器,编译后需要连接程序把各个OBJ 文件连接成最终的可执行程序

nmake.exe :make 工具,就是它将要执行我们的Makefile 文件

 

好了介绍完所用工具,下面开始。

第一步:搭建环境,将下面代码保存成一个BAT 文件,我的是var.bat ,便于一次性配置好编译环境:

@echo off

set INCLUDE=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/include;< 你的安装位置>/Microsoft SDKs/Windows/v6.0A/Include

set LIB=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/lib;< 你的安装位置>/Microsoft SDKs/Windows/v6.0A/Lib

set PATH=< 你的安装位置>/Microsoft Visual Studio 9.0/VC/bin;< 你的安装位置>/Microsoft Visual Studio 9.0/Common7/IDE;%path%

echo on

 

第二步:环境设置完毕,现在写一个简单的Windows 窗口程序,只有一个文件main.cpp :

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. //! filename: main.cpp   
  2. #include <windows.h>   
  3. int  WINAPI WinMain( HINSTANCE  hInstance,  HINSTANCE  hPrevInstance,  LPSTR  lpCmdLine,  int  nShowCmd)  
  4. {  
  5.     MessageBox(NULL, L"Hello Kent!" , L "Makefile Test" , MB_OK);  
  6.     return (0);  
  7. }  
  8. //! main.cpp end   

第三步:主角Makefile 文件:

#My Makefile

#可执行文件名字

NAME = test

#需要的OBJ文件

OBJ = main.obj

#编译器参数,/c:只编译不连接 /D:定义宏 /Gd:指定使用__cdecl的函数调用规则

CL_FLAGS = /c /D "_UNICODE" /D "UNICODE" /Gd

#连接器参数,/OUT:后面是输出的可执行文件路径和文件名,

#再后面是需要的库文件,因为这里只用了MessageBox()函数所以只用加User32.lib库

#这个要根据自己具体应用修改,或者把VC中连接器命令行里显示的库名全写上以后就省事了

LINK_FLAGS = /OUT:$(NAME).exe User32.lib

#生成可执行文件规则

$(NAME).exe:$(OBJ)

link $(LINK_FLAGS) $(OBJ)

#生成OBJ文件规则

.cpp.obj:

cl $(CL_FLAGS) $<

#清理生成的临时文件

clean:

del *.obj

#Makefile end

第四步:执行Makefile 文件生成程序:

命令行下切换到var.bat 所在目录输入var 执行环境配置

切换到main.cpp 和Makefile 文件所在目录输入nmake 执行Makefile

好了,现在应该是已经生成了一个叫test.exe 的可执行文件,双击运行会出现一个对话框。这里只演示了一个简单的例子,但是后面的路已经有方向了。

Windows Mobile下SQLite的Native C++轻量封装实践 SQLite作为嵌入式领域最主流的轻量级关系型数据库,其C接口天然适配资源受限环境;Native C++封装则通过绕过托管运行时、精细控制内存分配与ABI兼容性,显著提升确定性与性能。在Windows CE内核驱动的Windows Mobile平台,该方案可规避.NET Compact Framework的GC不可控、DLL依赖臃肿及系统API错配等典型问题,广泛适用于工业PDA、医疗手持终端、电力巡检设备等离线强实时场景。本文聚焦ARMV4I架构下的编译适配、WAL模拟、事务超时控制与CE特化RAII设计 阅读详情

相关推荐

VS 2008编译C语言DOS程序的使用教程

Visual Studio 2008 是微软公司推出的一款重要的集成开发环境(IDE),为软件开发者提供了编写代码、调试、测试以及发布应用程序的便利环境。它支持包括C++, C#, VB.NET等多种编程语言,并集成了数据库开发工具、服务器配置、版本控制以及与其他微软技术的集成特性。结构体、联合体和枚举是C语言中高级数据类型,允许程序员创建更复杂的数据结构。在DOS环境下使用这些高级数据类型时,需要确保编译器支持相应特性的语法。

weixin_36019375的博客 1221

【Makefile】【Visual Studio】编写VC Makefile的学习总结

一、参考博客: 编写VC Makefile的学习总结 Visual Studio Makefile 方式编译 命令行编译工具NMAKE nmake Makefile cl.exe include folder makefile最佳实践 - 从原理到实用技巧 nmake命令(windows下的makefile) 在windows里写NMake makefile,编...

weitaming1的博客 752

CVAT自动标注避坑指南:从nuctl安装到YOLOv5模型部署的完整流程

本文详细介绍了在CVAT中部署YOLOv5自动标注功能的完整流程与避坑指南。重点解决了从nuctl工具安装、项目创建时因网络问题导致的镜像拉取失败,到最终模型函数部署与CVAT集成的关键步骤。针对国内网络环境,提供了实用的镜像替换方案,帮助用户顺利完成基于CPU的自动化标注环境搭建。

pytorch8learner的博客 229

如何使用Visual Studio2008从命令行编译链接程序

1.打开“VisualStudio2008命令提示”窗口。       单击“开始”按钮,指向“所有程序”,指向“MicrosoftVisualStudio2008”,再指向“VisualStudio工具”,然后单击“VisualStudio2008命令提示”。 2.在命令提示符下,键入 notepad simpleclr.cpp,并按Enter。 在系统提示是否创建新文件时,单

runlong_86的专栏 842

【GIS效率手册】告别C盘爆满:三步重置ArcMap默认地理数据库路径

本文针对ArcMap用户C盘空间常被占满的问题,提供了三步重置默认地理数据库路径的详细教程。通过修改地图文档属性,将数据存储位置从C盘迁移至其他驱动器,不仅能有效释放系统盘空间,还能提升数据管理效率与安全性,是GIS数据规范化管理的关键一步。

g2h3i4j5的博客 542

告别手动归档:基于Allegro Skill的XTools一键生成Gerber与生产文件实践

本文详细介绍了基于Allegro Skill的XTools工具如何实现一键生成Gerber与生产文件,大幅提升PCB设计效率。通过自动化流程,解决了传统手动归档中的重复劳动、人为失误和标准不统一等问题,特别适合需要频繁输出生产文件的工程师。文章包含安装配置、实战操作、问题排查及进阶技巧,帮助用户快速掌握这一高效工具。

weixin_30505225的博客 460

如何使用Visual Studio 2008(VS2008)编译C语言

大家在学习C语言的时候接触的一般都是VC6.0。但是VC6.0只能编译C或者C++,不支持C#,集成度不是很高。而且界面并不十分友好,不能自动猜测关键字,函数的参数也不能自动标示。最关键的是,编译的时候纠错信息是全英文的,对于初学者十分不方便。在演示编译一些简单的C程序时VC6.0可以胜任,但是在进行稍微复杂的程序编辑工作时,VC6.0就有点力不从心了。 ...

weixin_30788239的博客 305

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

【华为OD机试真题 2025C卷】895、贪心歌手 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华

KJ.JK 963

超简单VS2008如何编译Opencascade

说明:Open CASCADE Technology是为特定领域快速开发程序而设计面向对象的C++类库。可以使用OCCT来开发二维和三维的通用几何造型CAD(Computer Aided Design)程序,CAM(Computer Aided Manufacturing)系统和CAA(Computer Aided Analysis)程序;仿真程序和绘图程序。 网上有些Opencascade的...

feengg的博客 2429

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

基于opencv人脸识别实现课堂抬头率检测系统 完整代码 可直接运行 作为毕设

机器学习深度学习业余选手 1146

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

weixin_45735391的博客 8万+

Visual Studio 2008 启用X64编译

Visual Studio 2008 默认安装时是没有勾选X64编译器选项的,如果需要新增X64编译选项,可以按以下步骤操作。 1. 找到:“开始”-->“控制面板”-->“卸载程序”-->"Microsoft Visual Studio Team System 2008 Team Suite 简体中文" 双击后出现下图,点击“添加或删除功能” 勾选:“Itanium编译器...

geekooler的博客 1888

【ROS2】RViz2加载URDF模型文件

1)运行RViz2rviz22)添加组件:RobotModel3)选择通过文件添加4)选择URDF文件,此时会报错,需要修改Fixed Frame为map即可

郭老二 1450

企业级磁盘加密解决方案:TrueCrypt深度架构解析与安全部署实战

在当今数据安全日益重要的时代,**磁盘加密技术**已成为企业数据保护的核心防线。TrueCrypt作为一款开源的磁盘加密软件,以其强大的加密算法支持和跨平台特性,为开发者提供了完整的数据安全解决方案。本文将深入解析TrueCrypt的架构设计、核心加密机制,并提供企业级部署的最佳实践。 ## 🛡️ 核心安全架构解析 TrueCrypt采用分层架构设计,将加密逻辑、系统交互和用户界面清晰分离,

gitblog_01025的博客 1066

从 SM30 到 Fiori:在 SAP BTP ABAP Environment 里创建 Business Configuration 配置维护对象的完整路径

摘要 在SAP BTP的ABAP环境中,传统SAP GUI和SM30配置方式被Business Configuration (BC)替代。BC通过Fiori应用维护配置,支持传输和权限控制。配置表需满足可维护性条件,如允许数据维护、包含技术字段等。通过ADT生成Maintenance Object和Transport Object,实现配置发布与治理。权限管理需创建IAM App和Business Catalog,确保配置可维护。BC在云端延续了可控、可追溯、可发布的治理原则。 (字数:150)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 239

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【在Visual Studio中使用CMake构建项目工程】

使用CMake在Visual Studoi2019中构建项目工程

qq_49613557的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VS2008项目移植到Linux

不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefile文件的工作量又太大.在这里提供一种方法仅供参考. 由于VS的解决方案文件“*.sln”和项目文件“*.vcproj”文件中保存了源代码的依赖关系和编译信息,只要把它转换成Makefile文件就行...

weixin_34082177的博客 243

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

八、从0开始编写一个Makefile

Makefile Makefile简介 make命令执行时,需要一个makefile文件,以告诉make命令需要怎么样的去编译和链接程序。 eg:一个工程有8个c文件,和3个头文件,我们要写一个makefile来告诉make命令如何编译和链接这几个文件。规则是: 如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。 如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的c文件,并链接目标程序。 只要我

qq_43940175的博客 890

使用Visual studio调试其他编译工具编译好的程序

有时我们不方便使用vs编译,比如开源项目libreOffice。在本地编译好之后,如果想用VS来进行调试怎么办? [1]首先新建一个空项目,比如liteWord [2]然后点击菜单栏DEBUG,点击liteWord(项目名) properties [3]然后在configure properties下点击debugging,如图所示,进行配置: 其中command 就是你编译好

帝江VII的博客 1930

Visual Studio Makefile 方式编译

在Linux下,使用makefile是一种常见的编译方式,感觉这是跟IDE的缺乏有关,另外就是IDE比较多,支持不完善。而在windows下常使用VS进行编译,方法是比linux简单了,但是导致程序员往往不关系编译的过程,过度依赖于IDE工具。下面简单介绍一下windows下的Makefile编译方式。首先注意这么几个工具:cl.exe :C/C++ 编译器,通常在VC 环境中的“编译”选

Warden@CN 2万+

windows下makefile文件:nmake用法

1、程序源文件:如有三个文件:主文件:hello.cpp,类NUM的说明和实现文件:Num.h和Num.cpp,内容如下:main.cpp: #include "iostream"#include "NUM.h"using namespace std;int main(){coutNUM a;a.Add(1);a.Add(3);a.Add(5);a.Display();return 0;}

dawnbreak的专栏 9541

visual studio 2013上搭建arm交叉编译环境(四)makefile配置及编译过程

交叉编译makefile配置及编译过程 上篇文章已经介绍了cygwin测试工程建立和生成的方法,本文在此工程的基础上,介绍makefile修改及编译过程。  debug.mak是makefile的配置文件,此文件通过makefile中如下语句导入到makefile中,作为makefile特定变量的定义文件。 下面是debug.mak文件,应该很容易理解。 #DO NOT EDI

技术控的笔记 4723

Windows平台下Makefile学习笔记(一)

作者:朱金灿来源:http://blog.youkuaiyun.com/clever101决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译平台的问题(发现一些开源代码已经在使用VS2010开发,但我还没安装VS2010,我想在VS2008下编译这些代码);另一方面源码在服务器端编译的话,使用IDE的方式编译还是不太方便。本文主要分为三部分:第一部分讲述n...

weixin_34205076的博客 1609

在VC里如何用Makefile文件编译?

运行cmd.exe   (or   command.com   in   win9x)->进到vc/bin目录->运行vc-vars32.bat->进到makefile   所在的目录->nmake   /f   makefile   从sourceforge上下载下来的libjpeg源代码中有一个makefile.vc的文件,可以通过nmake /f makefile.vc [nodebug=1

jiangxinyu的专栏 1万+

使用VS2010的nmake命令编译MakeFile流程

使用.nmake的makefile是可以是用vs的nmake命令编译的。

xiaoluer的专栏 2万+
上一篇: 转王述裕:孙悟空为什么屡遭排挤
下一篇: fstream的用法
LPR_Pro
博客等级 码龄19年 417粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值