小编Gui*_*ume的帖子

如何在Xcode中启用构建时序?

我想知道我的项目构建需要多长时间,例如通过在构建窗格中显示它.这个选项在Xcode的某处可用吗?

谢谢.

xcode build timing

79
推荐指数
4
解决办法
2万
查看次数

何时以及如何使用GCC的堆栈保护功能?

-Wstack-protector在编译正在进行的项目时启用了警告(商业多平台C++游戏引擎,使用GCC 4.2在Mac OS X 10.6上进行编译).此标志警告即使-fstack-protector启用了也不会防止堆栈粉碎的功能.GCC在构建项目时会发出一些警告:

不保护功能:没有缓冲区至少8个字节长
不保护局部变量:可变长度缓冲区

对于第一个警告,我发现可以调整缓冲区在函数中使用时必须具有的最小大小,以防止此函数发生堆栈粉碎:--param ssp-buffer-size=X可以使用,默认情况下X为8,可以为低至1.

对于第二次警告,除非我停止使用,否则无法抑制其发生-Wstack-protector.

  1. 什么时候应该-fstack-protector使用?(例如,在开发期间的所有时间,或者只是在跟踪错误时?)
  2. 什么时候应该-fstack-protector-all使用?
  3. 什么在-Wstack-protector告诉我?它是否暗示我减少缓冲区最小尺寸?
  4. 如果是这样,将尺寸设为1有什么缺点吗?
  5. -Wstack-protector如果您想要一个无警告的构建,它似乎不是您想要随时启用的那种标志.这是正确的吗?

c++ stack gcc protection

59
推荐指数
1
解决办法
6万
查看次数

如何使用GCC属性'format'?

这是一小段代码:

#include <stdio.h>
#include <stdarg.h>

void MyPrintf(char const* format, va_list args);
void MyVariadicPrintf(char const* format, ...);

void MyPrintf(char const* format, va_list args)
{
    vprintf(format, args);
}

void MyVariadicPrintf(char const* format, ...)
{
    va_list args;
    va_start(args, format);
    MyPrintf(format, args);
    va_end(args);
}

int main(int, char*)
{
    MyVariadicPrintf("%s" /* missing 2nd argument */);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用GCC 4.0编译它,在Mac OS X Leopard上运行Xcode.
-Wformat和-Wmissing-format-attribute已启用.
此代码在第9行(调用vprintf)上发出警告,建议MyPrintf可以使用'format'属性:

函数可能是'printf'格式属性的候选者

所以我以这种方式添加属性(不确定这是否正确):

void MyPrintf(char const* format, va_list args) __attribute__((format(printf, 1, 0)));
Run Code Online (Sandbox Code Playgroud)

之前的警告消失,同样的警告现在出现在第16行(呼叫MyPrintf)上,表明MyVariadicPrintf可以使用'format'属性. …

format printf attributes gcc warnings

13
推荐指数
1
解决办法
1万
查看次数

GCC:使用-pedantic时是否可以禁用"枚举器列表末尾的逗号"警告?

我正在编译C++代码,我想启用-pedantic选项.
我正在使用GCC 4.0,在Mac OS X Leopard上运行Xcode.
例如long long,当使用-pedantic(带-Wno-variadic-macros和-Wno-long-long)时,可以允许变量宏和通常被禁止的类型.但我找不到任何禁用" 枚举器列表末尾的逗号 "警告的内容.
可能吗?

谢谢.

enums gcc

9
推荐指数
1
解决办法
5250
查看次数

标签 统计

gcc ×3

attributes ×1

build ×1

c++ ×1

enums ×1

format ×1

printf ×1

protection ×1

stack ×1

timing ×1

warnings ×1

xcode ×1