C++编译器命令行模式设置技巧

上传人:野鹰 文档编号:2906752 上传时间:2017-07-28 格式:DOC 页数:16 大小:49.50KB
返回 下载 相关 举报
C++编译器命令行模式设置技巧_第1页
第1页 / 共16页
C++编译器命令行模式设置技巧_第2页
第2页 / 共16页
C++编译器命令行模式设置技巧_第3页
第3页 / 共16页
C++编译器命令行模式设置技巧_第4页
第4页 / 共16页
C++编译器命令行模式设置技巧_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《C++编译器命令行模式设置技巧》由会员分享,可在线阅读,更多相关《C++编译器命令行模式设置技巧(16页珍藏版)》请在金锄头文库上搜索。

1、微软 C/C+/C#编译器命令行模式设定和用法微软 C/C+/C#编译器命令行模式设定和用法 和在 IDE 中编译相比,命令行模式编译速度更快,并可以避免被 IDE 产生的一些附加信息 所干扰。本文将介绍微软 C/C+/C#编译器命令行模式设定和用法。操作系统为 Windows 2000 。 一微软 C/C+编译器命令行模式设定 方法一 1.参照如下内容(根据你的系统情况,作出相应修改),编写一个批处理文件, 假定命名为 vs.bat。 echo off set PATH=C:WINNTSYSTEM32;D:VS.NETVC7BIN;D:VS.NETCOMMON7IDE set INCLUDE

2、=D:VS.NETVC7INCLUDE set LIB=D:VS.NETVC7LIB 说明: a.以上各环境变量字符串大小写无所谓,但字符之间应避免出现空格。 b.之所以加上 C:WINNTSYSTEM32,目的是为了便于使用 help 之类的扩展命令,和 本讨论主题并无直接关系。 2.打开一个“ 命令提示符”窗口,执行如下命令: C:start c:vc7.bat (根据你的文件路径,作出相应修改) 即会创建一个新的“命令提示符”窗口,在这个窗口内,便可进行 C+程序编译工作。具 体用法,后面再说。 这种设置方法的缺点在于,只能在步骤 2 新创建的“命令提示符”窗口里进行编译,一旦 关闭该窗

3、口,即需要重新执行步骤 2。 方法二 1.在桌面“ 我的电脑”图标上,单击右键,然后执行“属性” 菜单命令,或者, 依照“开始” “设置”“控制面板”步骤,双击“ 系统”图标,都会弹出“ 系统特 性”对话框。 选中“高级” 页面,点击“ 环境变量”按钮,即会出现图 1 所示的环境变 量设置窗口。(说明:任何用户都可以增/删/改用户环境变量,但只有管理员才能增/删 /改系统环境变量。对于特定计算机的每个用户来说,用户环境变量可以不相同) 图 1 2.你可以设置为用户环境变量,也可以设置为系统环境变量。参考以下内容,并 参见图 2 所示界面。(根据你系统的情况,作出相应调整) PATH=C:WIN

4、NTSYSTEM32;D:VS.NETVC7BIN;D:VS.NETCOMMON7IDE INCLUDE=D:VS.NETVC7INCLUDE LIB=D:VS.NETVC7LIB 图 2 和方法一不同的是,采用这种方式,一旦设置完毕,便可一劳永逸。无需重新启动计算 机,现在就打开一个“命令提示符 ”窗口,执行 cl 命令试试。 说明:假如你的操作系统是 Windows 95/98,可以参照上面描述,直接编辑 autoexec.bat 文件。 二Visual C# .NET 编译器命令行模式设定 C#编译器命令行模式设定方法大同小异,具体不再赘述,只需在 PATH 后面加上 C:W INNTM

5、ICROSOFT.NETFRAMEWORKV1.0.3705 即可。目前我的机器上 PATH 环境变量设置 如下: PATH=C:WINNTSYSTEM32;D:VS.NETVC7BIN;D:VS.NETCOMMON7IDE;C:WINNTMICRO SOFT.NETFRAMEWORKV1.0.3705;D:VS.NETFRAMEWORKSDKBIN;D:BCC55BIN;E:ORACL EORA81BIN 三微软 C/C+编译器命令行模式用法 微软 C/C+编译器编译选项数目众多,在“命令提示符” 窗口键入 cl /?即可查看完整列 表(见附录 1)。比如说, /GX 启用 C+异常处理机制

6、,/GR 启用 C+ RTTI,等等。在此不 打算详细讨论这些编译选项用法。 以下是我的测试目录 f:vstest 中的一个样例文件: /1.cpp #include using namespace std; void main() cout cl /GX 1.cpp 运行程序,即会产生如下输出: Hello Royal 编译多个文件也很简单,参见下面例子: /2.cpp #include #include 3.cpp using namespace std; void main() CTest ct(Hello ); cout using namespace std; class CTest

7、 public: CTest(string strValue): str(strValue) string str; ; 执行如下编译命令即可: F:vstestcl /GX 2.cpp 3.cpp 也可以这样编译,以指定生成的 exe 名字: F:vstestcl /GX /FeHello.exe 2.cpp 3.cpp (生成 Hello.exe) 运行程序,输出结果如下: Hello 四Visual C# .NET 编译器命令行模式用法 在“命令提示符” 窗口键入 csc /?即可查看完整编译选项列表(见附录 2)。在此不打算 详细讨论这些编译选项用法。不过,要说明的是,你之所以无需使

8、用/r:编译选项引用相 关库文件,就可以编译绝大多数程序,原因在于 C#编译器默认引用了 mscorlib.dll 以及 csc.rsp 文件中指定的程序库。该文件内容如下: # This file contains command-line options that the C# # command line compiler (CSC) will process as part # of every compilation, unless the /noconfig option # is specified. # Reference the common Framework librar

9、ies /r:Accessibility.dll /r:Microsoft.Vsa.dll /r:System.Configuration.Install.dll /r:System.Data.dll /r:System.Design.dll /r:System.DirectoryServices.dll /r:System.dll /r:System.Drawing.Design.dll /r:System.Drawing.dll /r:System.EnterpriseServices.dll /r:System.Management.dll /r:System.Messaging.dll

10、 /r:System.Runtime.Remoting.dll /r:System.Runtime.Serialization.Formatters.Soap.dll /r:System.Security.dll /r:System.ServiceProcess.dll /r:System.Web.dll /r:System.Web.RegularExpressions.dll /r:System.Web.Services.dll /r:System.Windows.Forms.Dll /r:System.XML.dll 可见,它引用了许多.NET 标准库,假如没有充足的理由,就不要修改这个配

11、置文件! 但我修改了我机器上的 csc.rsp 文件,它的尾部多了这两行: #NUnit is a unit-testing framework for all .Net languages /r:d:Nunitv2.0binnunit.framework.dll 注意,文件路径中不可有空格。例如,Nunit2.0 默认安装主目录为 Nuint v2.0,假如不 做必要的更改(我改成了 Nunitv2.0),将无法成功引用 nunit.framework.dll,并将导 致整个 csc 命令行编译器无法使用,小心! 假如要取消对 mscorlib.dll 或 csc.rsp 引用的话,可以使用

12、/nostdlib 或/noconfig 编译选 项。 以下是我的测试目录 f:vstest 中的一个样例文件: /4.cs using System; namespace _4 class Class1 STAThread static void Main(string args) Console.WriteLine(Hello Royal); 执行如下编译命令: F:vstestcsc 4.cs 运行程序,即输出: Hello Royal 以下是编译多个文件的例子: /5.cs using System; using _6; namespace _5 class Class5 STAThr

13、ead static void Main(string args) Class6 c6 = new Class6(Hello ); Console.WriteLine(c6.str); /6.cs using System; namespace _6 class Class6 public Class6(string strValue) str = strValue; public string str; 执行如下编译命令: F:vstestcsc 5.cs 6.cs 也可以这样编译,以指定生成的 exe 文件名字: F:vstestcsc /out:Hello.exe 5.cs 6.cs 运

14、行程序,即会输出如下字样: Hello 附录一(更详细信息,可查阅 MSDN) 微软 C/C+ 编译器选项 -优化- /O1 最小化空间 /Op- 改善浮点数一致性 /O2 最大化速度 /Os 优选代码空间 /Oa 假设没有别名 /Ot 优选代码速度 /Ob 内联展开(默认 n=0) /Ow 假设交叉函数别名 /Od 禁用优化(默认值) /Ox 最大化选项。(/Ogityb2 /Gs) /Og 启用全局优化 /Oy- 启用框架指针省略 /Oi 启用内部函数 -代码生成- /G3 为 80386 进行优化 /GH 启用 _pexit 函数调用 /G4 为 80486 进行优化 /GR- 启用 C+ RTTI /G5

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号