前一段时间在自学linux系统,想模仿linux命令行的方式在Windows下编译C/C++程序,摸索一段时间后总算把这个解决了!

(1)先用记事本编写如下所示的代码,并另存为hello.cpp,假设其保存路径为C:\Users\Administrator\Desktop。

#include

using namespace std;

int main()

{

cout<

return 0;

}

(2)用记事本写一段简单的批处理文件,内容如下所示,在保存文件时选择另存为,文件名假设为batch.bat,bat是批处理文件的后缀,保存类型选择:所有文件(这个尤其需要注意),假设其保存路径也是C:\Users\Administrator\Desktop。

set path=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin

set include=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\include

set lib=D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\lib

上面批处理文件的第一句话表示设置环境变量,这个也可以通过:计算机/属性/高级系统设置/环境变量/用户变量,D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin放到path的值里去,记得与之前已有值之间用";"隔开。这个path文件夹是我们装载VS2010时自带的,在设置路径时要根据自己的安装路径进行修改,里面包含微软在Windows下给我们提供的C/C++编译器cl.exe程序(编译器自身也是一个软件程序,只是它的作用是用来编译其它的程序),当然还有link.exe链接程序,调用cl时,系统会自动调用link程序(后面将看到我们只用了cl命令就可以进行C/C++程序的编译、链接)。后面两句话分别表示包含C++中自带的头文件库和静态链接库,静态理解库包含了头文件中函数对应的实现部分,为了不让人们看到其中的源代码,它以二进制文件形式编码,若要查看其内容需要进行反汇编。

(3)通过cmd命令进入DOS操作界面,输入cd C:\Users\Administrator\Desktop进入cpp文件和bat批处理文件所在的位置,然后键入batch.bat进行批处理,这些操作在VS2010集成开发环境中都为我设置好了,所以我们在里面写C/C++程序时并没有这样设置路径的繁琐操作,但是通过自己手动的路径设置,我们会对程序的编译、链接、执行有更加深入的认识。

(4)键入cl hello.cpp,我们会看到计算机报出了“无法启动此程序,因为计算机中丢失mspdb100.dll。尝试重新安装该程序以解决此问题”的系统储物,dll文件是动态链接库文件,其是在cl.exe程序运行时才被加载进来的文件,这个静态链接库lib文件不同。这说明在D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\bin路径里没有找到mspdb100.dll,原来此文件在文件夹D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\VC\Common7\IDE里,我们可以将此文件拷到bin文件夹里,或将D:\Softwares\en_Visual_Studio2010_Professional_x86_x16-81637\Common7\IDE加到批处理的path环境变量里,或者将其加到cpp文件所在的文件夹里,这只会引起在搜索顺序上的不同。

(5)再次键入cl hello.cpp,我们看到在C:\Users\Administrator\Desktop文件夹里得到了hello.obj文件,这是编译后的输出文件,但是没有得到可执行exe文件,DOS界面里出现这样的错误“LINK:fatal error LNK1104:cannot open file 'kernel32.lib' “这样的链接错误,kernel32.lib是Windows系统文件,通过Windows自带的搜索工具,我们看到此文件在文件夹C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib里,我们可以将其加到cpp文件所在的文件夹或bin文件里。再次键入cl hello.cpp,我们发现这次程序被成功编译链接了,cpp文件所在的文件夹里多了两个文件:hello.obj和hello.exe。

(6)在DOS界面键入hello.exe,程序被执行,输出了我们预想的hello world!,至此,在Windows下模拟linux命令行操作,编译C/C++文件全部完成了。

本文链接

嵌入式linux 网络唤醒,C语言实现wake on lan(网络唤醒...-Windows系统下用命令行编译C/C++...-字符串常量引起的思考_169IT.COM...相关推荐

  1. Windows-Linux:Windows系统下的命令类似Linux系统下的所有命令集合

    Windows-Linux:Windows系统下的命令类似Linux系统下的所有命令集合 目录 Windows下的命令类似Linux系统下的所有命令集合 1.基础命令 2.进阶命令 3.高级命令 Wi ...

  2. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...

  3. Windows 系统下通过命令将本地文件上传至远程 Linux 主机的指定目录下

    这里是借助文件传输客户端 putty 的命令来上传文件. 第一步:下载安装 putty 第二步:通过命令终端进入 putty 的主目录下,即进入 D:\puggy 目录下,该目录下含有多个可执行文件( ...

  4. Linux系统下通过命令行对mysql数据进行备份和还原

    一.备份 1.进入mysql目录 cd /var/lib/mysql (进入mysql目录,根据安装情况会有差别) 2.备份 mysqldump -u root -p密码 数据库名 数据表名 > ...

  5. linux连不上网 ens33,如何解决Linux 系统下 ifconfig 命令无网络接口 ens33

    搜索热词 今天我在做Redis的哨兵集群模式的时候,以前都是好的,也不知道从什么时候开始就无法连接Redis服务器了,就是运行如下命令,没有效果:redis-server redis.conf,然后在 ...

  6. linux网络显示不出来ens33,如何解决Linux 系统下 ifconfig 命令无网络接口 ens33

    今天我在做Redis的哨兵集群模式的时候,以前都是好的,也不知道从什么时候开始就无法连接Redis服务器了,就是运行如下命令,没有效果:redis-server redis.conf,然后在通过命令查 ...

  7. linux网卡ens33,如何解决Linux 系统下 ifconfig 命令无网络接口 ens33

    今天我在做Redis的哨兵集群模式的时候,以前都是好的,也不知道从什么时候开始就无法连接Redis服务器了,就是运行如下命令,没有效果:redis-server redis.conf,然后在通过命令查 ...

  8. linux+唤醒windows,Linux系统与Windows系统下的网络唤醒

    Wake on Lan with Linux and Windows Linux系统与Windows系统下的网络唤醒 Motivation 问题起因 I have 3 computers. My la ...

  9. linux软件安装非系统盘,linux操作系统可不可以像安装windows软件一样在windows系统下的硬盘上安装...

    linux操作系统可不可以像安装windows软件一样在windows系统下的硬盘上安装 答案:2  信息版本:手机版 解决时间 2020-07-24 14:13 已解决 2020-07-23 16: ...

最新文章

  1. php语法大全下载,PHP下载文件
  2. Kubernetes master节点的高可用配置
  3. Netty开发的基本流程及关键类说明
  4. 五万块钱买什么车好_10万预算买什么车好?看空间、动力和配置
  5. vue实现todo功能(一):搭建vue-webpack环境
  6. 第10讲 | 深入区块链技术(二):P2P网络
  7. 数据结构:内排序(C++)
  8. Camtasia Studio2023专业的电脑屏幕录像视频编辑软件
  9. java考试系统倒计时的实现_(Java程序设计)第11章设计考试系统中的倒计时.ppt
  10. 将像素图转换为矢量图
  11. TwinCAT 3 file记录日志txt文件程序
  12. 数据库分库分表之后如何查询统计?
  13. 逃脱只会部署集群系列 —— k8s集群的网络模型与跨主机通信
  14. 怎么使用oracle的加权平均数_加权平均数与算术平均数的区别,实例比较。
  15. Python Traceback (most recent call last)【StopIteration】
  16. itunes备份文件的位置在哪
  17. 好看的充电宝有哪些?好看的充电宝推荐
  18. NRF24L01+双向通信
  19. error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type
  20. addons软件下载_addons手机正版下载|

热门文章

  1. oracle list 分区详解,oracle的List分区及分区索引
  2. php同时删除两个列表数据库,PHP 处理 数据库多表,既能高效又能思路清晰如何处理的?...
  3. python3 mysql代码行_教你用100多行写一个数据库(附源码)|python3教程|python入门|python教程...
  4. layui 单选项 点击显示与隐藏 很实用
  5. 2分钟 Docker 部署 SprinBoot 集成 Flowable 工作流引擎
  6. idea菜单栏消失如何调整回来
  7. Java裁剪压缩PNG图片,透明背景色变黑问题解决
  8. 开发经验分享_02_解决问题3步走(实战)
  9. Git仓库初始化_企业级开发原则
  10. origin master 出现The authenticity of host 'github.com ' can't be established