cppan 命令_VC命令行编译C++

本文详细介绍了C++编译器cl.exe和链接器mlink.exe的使用,包括编译格式、参数选项如/O1、/O2优化,以及如何处理命令行参数过长的问题。通过实例解释了内联函数优化选项/Ob的用法,展示了不同参数如何影响编译结果。同时,警告了一些在后续版本中可能过期的参数。
摘要由CSDN通过智能技术生成

编译器

cl.exe

连接器

mlink.exe

编译格式:

cl

[

option

...]

file

... [

option

|

file

]... [

lib

...] [@

command-file

] [/link

link-opt

...]

option

是编译参数

file

是编译的源文件

lib

是程序需要的依赖库

command-file

是命令行文件

当命令行参数过长,

CMD

不支持时,可将一部分命令移到文件中,附加该文件使得文件中

的命令有效

link-opt

是链接选项,在输入

/link

后输入链接选项,则可以把这些选项传递给链接器。

注意:在格式中

[option] file [option] file

虽然是

options

是分开了,但是所有的

options

都是

同时作用于所有

file

的。

例如

cl /MT main.cpp /LD submain.cpp

的意思是

/MT /LD

同时对这个两个文件起作用。相

同的

/

互斥的参数,以后出现的为准。

例如

cl /Fo

src\\

main.cpp /Fo

symbol\\

submain.cpp

生成的

obj

文件都会放在

symbol

文件

夹下。

下面介绍编译器

(cl)

的参数

(options)

有些参数后面标记过期,该参数在

VS2005

下仍然有效,但是在后续版本中可能会被删除。

VS2005

中可能会有其他参数来代替过期参数,在各个过期参数中会有说明。

优化选项:

/O1

体积最小优化

相当于

/Og /Os /Oy /Ob2 /Gs /GF /Gy

的组合

/O2

速度最快优化

相当于

/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy

的组合

/Ob

扩展

inline

函数。

/Ob0

禁用内联。默认值。

/Ob1

仅仅内联被标识为

inline

__inline __forceinline

,在

class

定义中写函数实现

的函数。

例如

class CTest

{

public:

int GetInt()

{

return m_iInt;

}

private:

int m_iInt;

}

该函数在

/Ob1

的参数下,会被编译成内联函数。

/Ob2

包含

/Ob1

的情况,并且编译器会把可以编译成内联,但是没有加上

inline

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值