当年从Windows跑到Linux和Mac平台时的喜悦就在于好用的命令行工具,比如apt, yum, macports,更在于毫无拘束的gcc,狂放的makefile。虽然stream上可以下载很多游戏,可那是需要付费的,哪像Windows上“自由软件”太多了。
Mac下又一款很好的软件叫做CodeRunner,可以很快速的进行多种语言的单元测试。Windows下没有。今天需要测试一些新的功能,就想着cl + powershell。沮丧的是,我装的vs是2015社区版。不骗您,Visual Studio 2010 Community可真是个大坑啊,在VC/inlcude下居然找不到stdio.h。Google后发现,这一版已经把stdio.h设置为系统内在的了,放在Windows SDKs下,但我找了很久都没发现这玩意。最后我干脆不要这个include了,可用cl编译的时候居然找不到kernel32.lib和libucrt.lib,前面那个还好说,可后面那个又是找不到的状态。
看看我的mac,我默默卸载了vs2015社区版这货,然后五分钟不到下好visual studio 2010,安装。又坑,居然是中文版。算了,将就着用吧,实在懒得再下个英文版了。在这之前,我已经下载了Cygwin和Code::Block。真是没想到Default安装的Cygwin居然不带gcc和vim,那你叫什么Cygwin。更新安装这货,可连国外服务器的速度真慢,等不及的我下载了32M大小的Code::Block。还没等我夸奖CB体量之小,安装后发现居然不自带编译器。怒了,这才下了中文版的VS2010。
使用中文版的Visual Studio 2010真的很low吗?
配置命令行CL编译还需要进行一些简单的配制环境变量环节:
右键我的计算->属性->高级系统设置->高级->环境变量,配制的环境变量(建议配制在用户的环境变量中)的值如下:
VS2010_DIR:
C:Program Files (x86)Microsoft Visual Studio 10.0
WIN_SDK:
C:Program Files (x86)Microsoft SDKs
path:
C:UsersAdministrator.dnxin;%VS2010_DIR%VCin;%VS2010_DIR%Common7IDE
include:
%VS2010_DIR%VCinclude;%WIN_SDK%Windowsv7.0AInclude;
lib:
%VS2010_DIR%VClib;%WIN_SDK%Windowsv7.0ALib;
用cl编译多文件的时候,比如
cpp文件:main.cpp、module1.cpp、module2.cpp。
lib文件:lib1.lib、lib2.lib。
使用到stdio.h、string.h等标准库
最简单的方法就是:
cl main.cpp module1.cpp module2.cpp lib1.lib lib2.lib /Fetest.exe
分别编译的话
cl main.cpp /c
cl module1.cpp /c
cl module2.cpp /c
cl main.obj module1.obj module2.obj lib1.lib lib2.lib /Fetest.exe
基本上,cl可以替代link.也可以给link传参数。
对了,命令行版本的visual studio是免费的。有篇有关这个编译器的用法的介绍文章可见:http://blog.163.com/yuyang_tech/blog/static/2160500832013118112049372/