gcc -fno-builtin; -flto

 -fno-builtin

    不承认不以__builtin_开头的函数为内建(built-in)函数。

    gcc一般会生成特定的代码更有效地处理某一内建(built-in)函数,例如,alloca调用可能会编程单指令,该指令能够直接调整堆栈;memcpy调用可能编程内联(inline)的复制循环。这最后的代码常常是小而快的。但是由于这个函数调用不会再以原来的样子出现,所以你不能设置断点(breakpoint)在这些条用上。你也不能够改变这个函数的行为通过调用不同的库。另外,当一个函数被作为一个内建(built-in)函数时,gcc可以生成一些与这个函数有关的警告信息当你调用这个函数时。

    使用“-fno-builtin-function’选项,仅仅是不把function这个函数当作内建(built-in)函数,function这个函数不能够以"__builtin_"开头。如果一个函数不是以内建(built-in)函数名命名的,那么这个选项(-fno-builtin-function)是无效的。没有对应的“-fbuiltin-function”选项,当使用“-fno-builtin”或“-ffreestanding”选项时,你又想有选择性的使用内建(built-in)函数时,你可以定义宏(macros),例如:

                    #define abs(s)        __builtin_abs((n))

                    #define strcpy( d, s)  __builtin_strcpy( (d), (s) )


-flto[=n]  

        运行标准的连接时间优化。

转载于:https://my.oschina.net/saly/blog/130931

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值