码迷,mamicode.com
首页 > Windows程序 > 详细

C#编译器csc的用法

时间:2015-06-09 11:26:47      阅读:373      评论:0      收藏:0      [点我收藏+]

标签:

不使用IDE,直接利用编译器处理源码,然后生成相应的exe文件,点击执行。下面就来说一下C#的编译器csc的用法.

csc编译器的配置

使用记事本编写一个C#程序,保存后将扩展名改为cs,存储在D盘中。这个文件会成为本例中的一个样本。代码大意为向命令行中写下“i love u”。

using System;

namespace Wrox
{
	public class MyFirstClass
	{
		static void Main()
		{
			Console.WriteLine("i love u!");
			Console.ReadKey();
			
			return;
		}
	}
}

直接运行csc编译器会提示找不到命令,首先要进行环境变量的配置:

在.NET Framework的安装路径上,可以看到标识有本台机器上已经安装的.NET Framework各版本的文件夹,选择写有最新版本的文件夹进入。如本机中.NET Framework版本为“v4.0.30319”。具体的目录是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319

把这个目录放到系统的path环境变量中。

此时就可以使用csc命令对cs文件进行编译了。在设置完环境变量后,cmd需要重启一次,才能执行csc命令。

把cmd切换到D盘中,就可以直接编译这个test.cs源码文件了。编译完成后就出现一个对应的test.exe可执行程序,点击就可以运行了。

csc的编译命令

1 ./refrence

   此选项可使得当前编译工程使用指定文件中的公共类型信息。这个选项对于初学者是很重要的。此选项的简写是/r。你必须引用在程序代码中使用"using"关键字导入的所有文件,如果在你的程序中,使用了自己编写的类库,在编译时也必须引用。

例子:编译文件,并引用在程序中使用的文件

csc /r:system.dll;myExec.exe;myLibrary.dll myProject.cs 

 (注:其中那个myExec.exe和myLibrary.dll时自己创建的)

2 ./target

   这个选项是告诉编译器你所想得到什么类型的输出文件。除非使用/target:module选项,其他选项创建的输出文件都包含着汇编名单。汇编名单存储着编译中所有文件的信息。在一个命令行中如果生成多个输出文件,但只创建一个汇编名单,并存储在第一个输出文件中。

   下面是/target的4种用法:

   /target:exe 创建一个可执行(EXE)的控制台应用程序

   /target:library 创建一个代码库(DLL)

   /target:winexe 创建一个windows程序(EXE)

   /target:module 创建一个模块(DLL)

   例子:

csc /target:exe myProj.cs // 创建一个EXE文件

csc /target:winexe myProject.cs file://创建一个windows程序

csc /target:library myProject.cs file://创建一个代码库

csc /target:module myProject.cs file://创建一个模块

3. /debug

   此选项是在调试时候使用的,当调试者启用了这个选项来调试自己的程序,将会创建一个.pdb文件,并把各种调试信息写到此文件里。有2中选项来指定调试的类型:

   /debug [+/-] :当选用/debug +就会把创建.pdb文件,并把调试信息存储到里面;/debug -是一个缺省设置,就是不产生任何调试信息。

   /debug:[full/pdbonly] :当使用/debug:full就是创建缺省的调试信息,有点类似/debug+选项。/debug: pdbonly选项是创建.pdb文件,并且你只能使用源代码调试在调试工具里。

   例子:编译Hello.cs并且为Hello.cs创建调试信息

csc /debug+ HelloWorld.cs 

  

4. /define

   此选项在程序中定义了一个符号,他和在源程序中使用#define预处理程序指示功能相同,此符号保持已定义状态,直到源文件中的#undef指示符删除定义或者编译器已到达了文件末尾。你可以用/d简写来代替。

   例子:下面是my.cs的源程序

using System; 

public class myBuild
{ 
	public static void Main() 
	{ 
		#if (final) 
			Console.WriteLine("Final Build"); 
		#else 
			Console.WriteLine("Trial Build"); 
		#endif 
		
		Console.ReadKey();
	} 
} 

 

   如果用csc /define:final my.cs来编译就会显示"Final Build",如果没有/define,编译后执行就会显示"Trial Build"。

  

C#编译器csc的用法

标签:

原文地址:http://www.cnblogs.com/stemon/p/4562581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!