zoukankan      html  css  js  c++  java
  • C学习笔记——使用CL编译器

    cl.exe 是一款控制 Microsoft C 和 C++ 编译器与链接器的工具。cl.exe 只能在 Windows 2000、Windows XP 和 Windows Server 2003 操作系统上运行。

    一、编译器CL介绍

    编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。

    注意,所有编译器选项都区分大小写。

    若要编译但不链接,请使用/c。 

    语法:

    CL [option...] file... [option | file]... [lib...] [@command-file] [/link link-opt...]
    选项option具体内容可以查看 http://msdn.microsoft.com/zh-cn/library/fwkeyyhe%28v=vs.80%29.aspx
    二、CL常见问题
         在我们使用CL编译我们的C或者C++文件的时候,通常会出现两个文件,一个是*.exe文件,另外一个是*.obj文件。可是你曾经是否想
    过了解一下*.obj文件是干什么的吗?很惭愧,我原来没有,今天看到别人的博客,突然发现自己很没有这种探索意识,以后还是要多加强。
    闲话少说,现在我们来了解一下*.obj文件你是干什么的。
      现在假定我们写了一个输出”hello world“的文件,文件名是test.c。打开我们的“CMD",使用CL test.c来编译,现在出现了一
    个test.exe文件和test.obj文件。我们用记事本打开我们的test.obj文件,结果如下:

      在这里obj是目标文件,他是CL编译器把c文件编成机器代码的文件,这个文件是跨平台的,听说这里需要编译原理的知识,细节就不再
    讲了(呵呵,我也讲不了)。
      而exe文件是通过link将它编译成你现在使用的系统能够识别的格式,我们用的是Windows,所以是exe文件。
      使用“cl /c”命令会只生成一个obj文件,没有exe文件,在这里需要使用link命令工具来生成exe文件。link是一个连接器,就是链
    接机器语言转换成系统能识别的文件。使用命令”link test.obj"命令就产生了我们想要的test.exe文件。这下就可以在win平台运行了。 

          如果在cl命令后面加上2个参数/c和/P(p大写),就会多了1个test.i文件。然后我打开它,尽然有400多行,它会将我们的stdio.h中的内容

    包含进来,但是其中有个细节,就是stdio.h文件中也包含了其他文件,所以全部展开后就400多行了!这里要说明的是#include<stdio.h>是编

    译的时候是将stdio.h文件包含进来编译的。

            同时,在这里记录一下,这个也是今天才知道的,在C中 int长度不一定就是4位 它跟编译器有关 它不像java C# 长度是统一的

  • 相关阅读:
    鼠标滑过图片显示放大镜效果
    如何点击iframe跳转以及允许点击全屏展示
    百度echarts饼图百分比的计算规则---最大余额法
    移动端点击出现蓝色背景框&pc端覆盖chrome浏览器input本身的背景颜色
    未解决 --- gorde-map移动端 样式为圆角移动过程中不生效
    Vue -- 数据更新echarts表格不更新问题
    Vue -- table多表头,在表头中添加按钮
    responsive --- a:hover伪类在ios移动端浏览器内无效的解决方法
    编辑器 --- Visual Studio Code mac window 常用快捷键
    mysql 知识整理
  • 原文地址:https://www.cnblogs.com/bugY/p/2142086.html
Copyright © 2011-2022 走看看