C 未能编译超简单代码

C 未能编译超简单代码,c,visual-studio-2010,compiler-construction,compilation,linker,C,Visual Studio 2010,Compiler Construction,Compilation,Linker,我不明白为什么,但当两个文件之间有一些引用时,我无法在两个文件中编译超级简单的C代码。我使用VisualStudio 2010,打开了空的C++项目,这里是: 主要条款c: extern void putc(char c); int main() { char c = ' '; putc(c); return; } 另一个文件.c: void putc(char c) { } 我发现以下错误: 我想它将在一些项目配置中,但我不知道在哪里 请帮助。默认设置对我有效。您的.sln可能有问题。

我不明白为什么,但当两个文件之间有一些引用时,我无法在两个文件中编译超级简单的C代码。我使用VisualStudio 2010,打开了空的C++项目,这里是:

主要条款c:

extern void putc(char c);
int main() {
char c = ' ';
putc(c);
return;
}
另一个文件.c:

void putc(char c) {

}
我发现以下错误:

我想它将在一些项目配置中,但我不知道在哪里


请帮助。

默认设置对我有效。您的.sln可能有问题。尝试创建一个新的空控制台项目,并添加文件。如果它仍然不起作用,请发送生成exe时出现的错误。

它在默认设置下对我起作用。您的.sln可能有问题。尝试创建一个新的空控制台项目,并添加文件。如果仍不起作用,请发送生成exe时出现的错误。

在VC2012项目中,请禁用
预编译头
选项。这将解决您面临的编译问题。

在VC2012项目中,请禁用
预编译头
选项。这将解决您面临的编译问题。

尝试将
putc
重命名为其他名称。这可能是与
C
-函数
putc
的名称冲突。我试过了。这没有帮助。获取相同的错误,但名称已更改。请尝试清理项目文件夹。我刚刚在VC2012中测试了你的代码,它对我很有效……我打赌你没有使用那些精确的文件。在错误消息中有一个对
screen.obj
的引用,并且上面写的
另一个文件.c
(我假定是
screen.c
)没有以任何方式引用
main
\u main
。@user35443因为您提到了VC2012,您可以尝试禁用项目的预编译头选项并重试吗?尝试将
putc
重命名为其他名称。这可能是与
C
-函数
putc
的名称冲突。我试过了。这没有帮助。获取相同的错误,但名称已更改。请尝试清理项目文件夹。我刚刚在VC2012中测试了你的代码,它对我很有效……我打赌你没有使用那些精确的文件。在错误消息中有一个对
screen.obj
的引用,并且上面写的
另一个文件.c
(我假定是
screen.c
)没有以任何方式引用
main
\u main
。@user35443因为您提到了VC2012,您可以尝试禁用项目的预编译头选项并重试吗?