Windows系统中控制台下编译C/C++文件

2023-11-09 08:32

本文主要是介绍Windows系统中控制台下编译C/C++文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    本文主要参考了此文章:http://blog.sina.com.cn/s/blog_4a5e32770100hfdh.html

    通常我们在Windows系统下编译程序是都使用IDE环境,如VC++6.0、VS2010等,直接点击几个按钮就可以完成工作,今天偶想在控制台环境下能够进行编译?网上查看后知道,只需设置一下环境变量就可以了。(以VS2010为例,里面有VC的功能)

    ../Microsoft Visual Studio 9.0/VC/bin:这里放有编译器 CL.EXE,将其加到系统变量中的PATH中即可;
    ../Microsoft Visual Studio 9.0/VC/include:这里放有 C/C++ header files,将其加到系统变量的INCLUDE变量下。(没有的话新建即可);
    ../Microsoft Visual Studio 9.0/VC/lib:这里放有 C/C++ standard libraries,将其加到系统变量的LIB变量下。

另外还需要将../Microsoft Visual Studio/Common/MSDev98/Bin加到系统变量PATH中,是因为编译器 CL.EXE 执行时需要

MSPDB80.DLL,否则会有如下提示:无法启动此程序,因为计算机中丢失mspdb80.dll。尝试重新安装该程序以解决此问题。如果发现在该目录下没有mspdb80.dll,网上下个放到里面即可。这样就可以进行编译C/C++文件了。

     如何进行编译呢?在控制台下进入你文件所在的目录下,敲入CL 文件名.cpp就OK了。

     另外自己找了个例子试了试,完全可以。

     文件内容:

 #include<stdio.h>
int main(int argCount,char* argValue[])
{
    FILE *srcFile=0,*destFile=0;
    int ch=0;
    if(argCount !=3)
    {
       printf("Usage:%s src-file-name dest-file-name/n",argValue[0]);
    }
    else
    {
       if((srcFile = fopen(argValue[1],"r"))==0)
       {
          printf("Can not open source file /"%s/"!",argValue[1]);
       }
       else
       {
          if((destFile = fopen(argValue[2],"w"))==0)
          {
             printf("Can not open destination file/"%s/"!",argValue[2]);
             fclose(srcFile);
          }
          else
          {
              while((ch=fgetc(srcFile))!=EOF) fputc(ch,destFile);
              printf("Successful to copy a file!/n");
              fclose(srcFile);
              fclose(destFile);
              return 0;
          }
        }
      }
      return 1;
}

    此程序摘自《高质量程序设计指南C++/C语言》,实现功能为将第一个文件的内容复制到第二个文件中(在命令行中输入文件名)。

    编译:CL mycopy.cpp。生成可执行程序mycopy.

    运行:mycopy 1.txt 2.txt。(1.txt、2.txt为目录下的两个文件,分别为源文件和目的文件)

    结果:将文件1.txt中的内容复制到了文件2.txt中了。

   

这篇关于Windows系统中控制台下编译C/C++文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/375073

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque