当前位置:首页 > Windows程序 > 正文

C#编译器csc的用法

2021-05-25 Windows程序

不使用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"。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71150.html