Windows 环境下 C 程序的编译配置_Gandalfool的博客-程序员秘密

技术标签: C语言  c语言  windows  

  一直习惯使用VS建立工程   但最近写了一些很小的程序   编辑使用的是 Notepad++   打开编译器觉得很麻烦   想到在 Linux 下可以直接使用 gcc 命令来编译程序   所以想要试一试在 Windows 系统下可否实现控制台编译 C 程序


  问题很简单   流程就是编写源代码 .cpp——编译生成目标文件 .obj——链接生成可执行文件 .exe


  首先来说下使用的命令   是cl(是英文字母 l 而不是阿拉伯数字的 1 )  如源代码为 source.cpp   需要在命令行下进入当前文件所在路径   然后敲 cl source.cpp 即可   会自动进行编译链接   结果是在同目录下生成一个 source.exe 文件  


  Win + R 打开控制台   如图  没有经过环境配置敲 cl 命令系统会提示出错:


  要做的事只有一件    就是对环境变量进行配置    动手配置过Java的朋友应该很熟悉这个过程   不过我的VC不完整   遇到了不少麻烦   所以写了这样一个博客出来  希望能给有和我一样困惑的人带来一点帮助


  我们需要的路径有两个  头文件包含的目录和 lib 文件存放的目录


  头文件是放在编译器的文件夹下的  自己有安装编译器的话  进入软件所在目录  找到 bin 文件夹  没有安装编译器的可以使用微软自带的VS环境  这个在你的系统盘 Program Files\Microsoft Visual Studio 12.0 目录下(12.0是我的版本  根据电脑的不同可能不同)



  lib 文件是配置文件  它存放在系统盘*86目录下的SDKs目录  进入子文件夹Windows后会发现其中有很多个文件夹  而我们需要的是仅仅包含Bin  Include  Lib这些文件夹的那一个(我的是放在7.1A中的)  比如你可能会遇到的错误:

C++编译报错 LINK:fatal error LNK 1104:无法打开文件 *.lib   这可能是你没有引入正确的 lib 路径造成的   如图   大部分的都可以在相应的 lib 目录下找到:


  比如我用的是VS 2013  安装在电脑G盘中  那么我的路径就是 

G:\APP\VS  

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A


  右击我的电脑(文件资源管理器)——属性——高级系统设置——环境变量  在系统变量一栏(不是用户变量)中找到LIB  INCLUDE  Path 三个变量  如果没有则自己新建

  

  下面是需要在其中添加的路径:

(LIB)C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib;  G:\APP\VS\VC\lib;

(INCLUDE)G:\APP\VS\VC\include;

(Path)G:\APP\VS\VC\bin;G:\APP\VS\VC\include;G:\APP\VS\VC\lib;


  配置完成后的效果如图所示   实例程序是放在 G:Test 这个文件夹下的 1.cpp 文件  使用 cl 命令生成目标文件:


  上图是系统为我们自动生成 .obj 和 .exe 文件  根据提示  我们直接键入程序名称 1.exe 来执行程序即可 



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Gandalfool/article/details/76167899

智能推荐

Python中itertools.permutations的用法解析_月光哒哒哒的博客-程序员秘密

itertools.permutations(a, b) 连续返回由a元素生成的长度为b的全排列组合。例子如下:import itertoolssum = 0a=[1, 2, 3, 4, 5]for i in itertools.permutations(a,2): print(i) sum += 1print(sum)b = list(itertools.permutations(a, 2))print(b)print(len(b))输出结果:(1, 2)(

多用户操作一个数据表时的并发性操作_ningbowxj3的博客-程序员秘密

我们写一个数据库表时一般都是单用户的。这个问题不大会发现。假如 Trans结构如下 * TicID TicBH TicDate我们调用ProcAddTicIDNew TicID = PPrcAddTicID.upd() .... EndNewPPrcAd

Centos 7 安装Dell 版ipmitool_centos7 ipmitool_nikolay的博客-程序员秘密

Step1 删除原有的ipmi工具(如有)yum remove ipmitoolyum remove OpenIPMIStep2 上传ipmitool-1.8.14-99.dell.3379.14516.el7.x86_64.rpm “可在DELL 官网找到DellEMC-iDRACTools“Step3rpm -ivh ipmitool-1.8.14-99.dell.3379.14516.el7.x86_64.rpm一切顺利的话执行:ipmitoo...

Android"挂逼"修练之行--微信小程序逆向辅助插件工具开发详解_编码美丽的博客-程序员秘密

一、前言之前一篇文章已经详细介绍了:微信小程序包的格式解析,在之前文章中也了解到小程序包存放在沙盒目录,但是微信为了让小程序包安全就对文件名做了一个处理,导致我们很难找到...

InRelease‘ changed its ‘Version‘ value from ‘10.6‘ to ‘10.11‘_dqwjack的博客-程序员秘密

[Fixed] N: Repository ‘http://security.debian.org buster/updates InRelease’ changed its ‘Version’ value from ” to ’10’ – VITUXhttps://www.reddit.com/r/debian/comments/ca3se6/for_people_who_gets_this_error_inrelease_changed/shell - Repository 'http://sec

面试时这五种人不被录用_无忧求职锦囊的博客-程序员秘密

求职道路漫长又艰苦,投了无数封简历,也参加过不少面试,可为何总是沦落到无限期的“等通知”中呢?到底怎样的求职者才是HR所钟意的?前程无忧论坛(bbs.51job.com)通过对HR的采访和调查,为你罗列出他们认为最容易被淘汰的5类人,希望你不要成为其中之一。      “低估”面试官   淘汰星级:★★★★★      “什么?怎么就找这样的‘小P孩’来面试我?看她那乳臭未干的

随便推点

创建git公钥方法_如何创建公钥_春眠不觉晓♞的博客-程序员秘密

如何快速有效的创建一个公钥:简单说一下公钥的作用: Git使用https协议,每次pull, push都要输入密码,所以每次输入都很麻烦;使用git协议,然后使用ssh密钥。这样可以省去每次都输密码,是大部分程序员的最佳选择。公钥我们一般是给服务器的,他们到时候在权限中加入我给的公钥,然后当我从远地仓库中下载项目的时候,我在git clone 某些代码的时候,那个服务器我通过他的绑定的公钥来匹配我的私钥,这个时候,如果匹配,则就可以正常下载,如果不匹配,则失败. 大多数 Git服务器都会选择使用 SS

飞桨工程师亲授调参技巧,可使MobileNetv3-YOLOv3模型压缩70%,推理速度提升1倍_百度大脑的博客-程序员秘密

随着端侧算力日益增长,以及模型小型化方案日趋成熟,使得高精度的深度学习模型在移动端、嵌入式等终端设备上流畅运行成为可能。然而将深度学习融合到终端设备上依旧面临平衡复杂神经网络结构的精度和...

【NOJ1001】【算法实验一】二分查找_二分查找noj_血月无华AUV的博客-程序员秘密

1001.二分查找时限:1000ms 内存限制:10000K 总时限:3000ms描述给定一个单调递增的整数序列,问某个整数是否在序列中。输入第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。输出每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。输入样例51 3 4 7 113369输出样例YesNoNo#include <iostr

黑马程序员_Java基础GUI_weixin_30954265的博客-程序员秘密

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------GUI:Graphical User Interfac...

初次使用activeMQ主题模型的一点配置分享_叫我伊来的博客-程序员秘密

    最近由于刚练手消息中间件,就拿了一个activeMQ试试,在练习的过程中遇到了比较明显的问题:就是主题模型下的消息队列,持久化订阅者的实现。具体表象就是,我的接收者重启后接收不到发送者已发送而未消费的消息,非得接收者先启动好,然后发送者推送消息,才可以接收到。这不是我想要的,实际是要求接收者重启后能主动拉取发送者已发送而未消费的消息。另外进入Messages Dequeued的消息无法再次...

Linuxc基础 十_这风雨一路的博客-程序员秘密

今天做了老师给的题目有几道题很有意思。代码代码题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.void quanzi(int *pa,int n){ int i,b=0,c; c=n; for(i=0;i<n;i++) { pa[i]=i+1; } for(i=0;;i++) { if...

推荐文章

热门文章

相关标签