我正在重构遗产,我需要依靠编译器。 Visual Studio中的某些设置工作不像我希望它工作。
档案a.c
int main (int i, char** l)
{
dostuff(i);
}
文件b.h
//empty header
文件b.c
void dostuff(int i);
void dostuff(int i)
{
//bla
}
a.c
不包括b.h
,也不包括b.h
意味着dostuff。由于dostuff不是静态的,因此导出符号。如果我删除b.c
,则编译失败。
我想设置vs2010,以便为a.c
生成错误,因为符号dostuff
未通过include导入。
我会采用什么设置?
答案 0 :(得分:1)
首先,你的代码应该生成一个warning(在第3级),这样你就可以从编译后看到出现问题。如果您想要错误:
您可以在#pragma warning (error : 4013)
文件中添加a.c
。
或者将/we4013
添加到Configuration properties->C/C++->Command Line
这会将您的代码生成的警告视为错误