我想知道我的项目构建需要多长时间,例如通过在构建窗格中显示它.这个选项在Xcode的某处可用吗?
谢谢.
我-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.
-fstack-protector使用?(例如,在开发期间的所有时间,或者只是在跟踪错误时?) -fstack-protector-all使用? -Wstack-protector告诉我?它是否暗示我减少缓冲区最小尺寸? -Wstack-protector如果您想要一个无警告的构建,它似乎不是您想要随时启用的那种标志.这是正确的吗?这是一小段代码:
#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'属性. …
我正在编译C++代码,我想启用-pedantic选项.
我正在使用GCC 4.0,在Mac OS X Leopard上运行Xcode.
例如long long,当使用-pedantic(带-Wno-variadic-macros和-Wno-long-long)时,可以允许变量宏和通常被禁止的类型.但我找不到任何禁用" 枚举器列表末尾的逗号 "警告的内容.
可能吗?
谢谢.