【问题标题】:Compile C app with Visual Studio 2012使用 Visual Studio 2012 编译 C 应用程序
【发布时间】:2011-12-20 18:05:54
【问题描述】:

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

【问题讨论】:

  • 您是否尝试将您的项目编译为 C++ 项目?如果您尝试,您会收到任何错误消息吗?
  • 您能解释一下为什么您不喜欢您找到的解决方案吗?否则,你是在让人们猜测你更想要什么。

标签: c visual-studio visual-c++ visual-studio-2012 visual-c++-2012


【解决方案1】:

在 VS2010 中编译普通的 C90 和 C++x0(仅部分支持)项目有点棘手(可能还有 Visual Studio 11,我还没有尝试在其中进行原生开发)。

您需要做的是创建一个新的 C++ 项目没有预编译的标头 -- 如果您想编译独立于平台的代码(库、控制台应用程序),这是主要要求。

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

【讨论】:

  • 预编译头文件是一种编译器优化。它们不会以任何方式使代码依赖于平台。
  • @JamesMcNellis:确实如此,但它们阻碍了普通 C++ 和 C 代码的编译过程:“include”语句被忽略,包含头文件是强制性的等等。对于出于学习目的编译小程序或从 Internet 编译 C++ sn-ps 是最好的方法,根本不使用标头,因此不会造成太大的性能损失。
  • 这就是我要找的东西!
【解决方案2】:

还要检查“属性 -> c/c++ -> 高级 -> 编译为”,确保它显示“c 代码”

或在命令行使用 /TC

【讨论】:

    【解决方案3】:

    在 Visual Studio 中创建一个空的 C++ 项目(文件 -> 新建项目 -> Visual C++ -> 空项目),然后添加一个扩展名为 .c 的源文件(右键单击该项目,选择添加 -> 新建项目 -> C++ 文件 (.cpp),并更改文件名)。

    当您构建时,编译器会将其编译为 C 代码(请注意,Visual C++ 仅支持 C90,不支持 C99,因此无法使用较新的 C 语言功能)。

    【讨论】:

      【解决方案4】:

      默认情况下,Visual C++ 编译器将所有以 .c 结尾的文件视为 C 源代码,并将所有以 .cpp 结尾的文件视为 C++ 源代码。要强制编译器将所有文件视为 C 而不管文件扩展名,请使用 /Tc 编译器选项。

      来源:MSDN Visual Studio 2013,http://msdn.microsoft.com/en-us/library/bb384838.aspxwalkthrough

      转到菜单命令以打开“项目 -> 属性”对话框。然后在“配置属性”中选择“C/C++ -> 高级”窗格。将“编译为”下拉框从“默认”更改为“编译为 C 代码 (/TC)。单击“应用”按钮,然后单击“确定”关闭对话框。

      【讨论】:

        【解决方案5】:

        选择新项目,win 32console应用程序,取消选中预编译头,选择空项目..然后添加一个新项目,选择..cpp文件,然后用.c.extension重命名文件,你就完成了编译c代码。 .

        【讨论】:

          【解决方案6】:

          对于较新的 VS 版本也是如此,您所要做的就像 @Alexander Galkin 所说的那样,

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

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

          步骤

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-06-23
            • 1970-01-01
            • 1970-01-01
            • 2013-08-07
            • 1970-01-01
            • 2014-07-10
            相关资源
            最近更新 更多