使用Visual Studio 2012编译C应用程序

9
我打算使用Microsoft Visual Studio 2012编写C语言应用程序。问题是我找不到在编辑器中正确编译它的方法。我发现了这个解决方案 http://msdn.microsoft.com/en-us/library/bb384838.aspx,但我不喜欢它。你能推荐一种在Visual Studio 2012中正确编译C程序的方法吗?

你尝试将项目编译为C++项目了吗?如果尝试了,是否收到任何错误消息? - Alexander Galkin
你能解释一下为什么你不喜欢你找到的解决方案吗?否则,你就是在让别人猜你更喜欢什么。 - Drew Dormann
请查看以下内容:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/bce36f1a-2044-40df-b83c-567ce5ca7c0c - K''
6个回答

19

在VS2010(可能适用于Visual Studio 11,但我还没有尝试原生开发)中编译纯C90和部分支持的C++x0项目有些棘手。

你需要做的是创建一个新的C++项目而不使用预编译头文件——如果你想编译跨平台代码(库、控制台应用程序),这是主要需求。

有几种方法可以实现。一种方法是创建一个普通的Win32 C++控制台应用程序,在打开的向导中,你应该进入第二个页面(通过点击“下一步”),然后取消选中“包括预编译头”的选项。然后你就可以直接在VS中编译C++(和C)项目。


预编译头文件是编译器的一种优化。它们不会以任何方式使代码与平台相关。 - James McNellis
1
@JamesMcNellis:这是真的,但它们会妨碍纯C++和C代码的编译过程: "include"语句被忽略,头文件的包含是强制性的等等。为了编译学习目的或从互联网获取的C++片段的小程序,最好根本不使用头文件,因为这样不会有太多性能损失。 - Alexander Galkin

16

还要检查 "属性 -> C/C++ -> 高级 -> 编译为",确保它说的是 "C 代码"

或者在命令行中使用 /TC


10
在Visual Studio中创建一个空的C++项目(文件 -> 新建项目 -> Visual C++ -> 空项目),然后向其中添加一个带有.c扩展名的源文件(右键单击该项目,选择添加 -> 新项 -> C++ 文件(.cpp),并更改文件的名称)。
当您进行构建时,编译器将会将其作为C代码进行编译(请注意,Visual C++仅支持C90,而不支持C99,因此较新的C语言特性不能使用)。

1
默认情况下,Visual C++编译器将所有以“.c”结尾的文件视为C源代码,将所有以“.cpp”结尾的文件视为C++源代码。如果要强制编译器将所有文件视为C源代码而不考虑文件扩展名,请使用/Tc编译器选项。
来源:MSDN Visual Studio 2013,http://msdn.microsoft.com/en-us/library/bb384838.aspx walkthrough 转到菜单命令以打开“项目->属性”对话框。然后在“配置属性”中选择“C/C++ ->高级”窗格。将“编译方式”下拉框从“默认”更改为“编译为C代码(/TC)”。单击“应用”按钮,然后单击“确定”关闭对话框。

0

对于较新的VS版本也是一样,你需要按照@Alexander Galkin所提到的步骤进行操作:

  1. 右键点击 项目属性
  2. C/C++
  3. 高级选项
  4. 将"编译为"设置为"编译为C代码(/TC)"

为了更直观地演示,请查看下面的屏幕截图;

步骤

enter image description here


0

选择新项目,Win 32控制台应用程序,取消预编译头,选择空项目。然后添加一个新项,选择..cpp文件,然后将文件重命名为.c扩展名,这样就可以编译C代码了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接