• 深入探究VC —— 编译器cl.exe(1)【转】http://blog.csdn.net/wangningyu/article/details/4830920


     cl.exe的功能是将源代码文件编译为可提供链接器使用的obj对象文件。cl.exe命令行参数形式如下:

    CL (option...) file... [option | file]... [lib...] [@command-file] [/link link-opt...]

    各命令行参数的意义如下 :

    1、option

    命令行中的"option"是指一个或多个编译选项。在指定选项时,需要在选项前加正斜杠(/)或一个短划线(-)。有一些选项还会带有参数,使用":"来指定选项的参数。比如"/sybsystem:windows,5.0"是一个编译选项,表示可执行程序执行所依赖的子系统是Windows(Win32图形用户界面的应用程序),版本最低5.0(即Windows 2000)。选项名区分大小写(/HELP选项除外),而且除了/link选项之外,其他选项是顺序没有要求。在编译时所指定的所有选项都将应用于用户指定的所有源文件。option命令行参数是可选。

    2、file

    命令行中的"file"是一个或多个所需要编译的源文件,也可以是.obj文件或库文件。cl.exe编译源文件并将.obj文件和库的名称传递给编译器。file参数是编译器的必须参数。

    3、lib

    该选项用于指定一个或多个库名。cl.exe直接将这些名称传递给链接器。lib是cl.exe的可选参数。

    4、command-file

    它包含多个选项和文件名的文件,为可选参数。

    5、link-opt

    一个或多个链接器选项。CL将这些选项传递给链接器,也是可选参数。

    举例Hello World:

    1. // File   Name: Hello.c  
    2. // Description: First Win32 Application  
    3. // by Koma 2009-11-18 22:05  
    4.   
    5. #include <windows.h>  
    6. #pragma comment(lib,"user32.lib")  
    7.   
    8. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR pszCmdLine, int cmdShow)  
    9. {  
    10.     MessageBox(NULL,"Hello World !","Test",MB_OK);  
    11.     return 0;  
    12. }  

    那么编译该源文件命令行下:

    cl /O2 /Fa /Gz /Fo Hello.c

    "Hello.c"前面的都是编译选项(即option参数),"Hello.c"是源文件(file参数),没有使用lib、command-file、link-opt等命令行参数。

    在命令行编译前,需要设置你的环境变量,如下所示:

    include    C:/Program Files/Microsoft Visual Studio/VC98/Include

    lib           C:/Program Files/Microsoft Visual Studio/VC98/Lib

    path       C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin;C:/Program Files/Microsoft Visual Studio/VC98/Bin

    (如果被修改过的并不是默认如此,设置完成需要重启电脑)

    好了,关于编译器命令行参数暂时就学习到这了~~~

  • 相关阅读:
    关于LockSupport
    Sqrtx
    Text Justification
    Unique Paths II
    N-Queens
    Anagrams
    CSipSimple通话记录分组
    CSipSimple配置系统
    Permutations II 再分析
    CSipSimple的插件结构
  • 原文地址:https://www.cnblogs.com/songtzu/p/2857366.html
Copyright © 2020-2023  润新知