如何知道Visual Studio中的项目是C还是C ++?

时间:2013-03-21 13:01:21

标签: c++ c visual-studio compiler-construction

Visual Studio如何知道项目是C还是C ++?是否有任何配置或构建参数指示这个?

VS是否将C编译器用于C,C ++编译器用于C ++?

3 个答案:

答案 0 :(得分:7)

  

VS是否将C编译器用于C,C ++编译器用于C ++?

没有

cl编译器非常聪明,可以知道(基于文件扩展名)文件是.cpp还是.cc文件 - 它被认为是C ++文件。 cl编译器会将.c文件视为C程序源文件,并进行相应编译。虽然它确实加载了单独的dll文件来编译CC++文件。但这是实施定义的。

但是,有一个开关可以根据文件扩展名覆盖cl的行为。

要编译为C ++源文件(即使扩展名为.c),命令也是: cl /TP yourfile.c 但请注意,该文件应包含有效的C ++代码。

要编译为C源文件(扩展名为.cpp),命令为: cl /TC yourfile.cpp 但请注意,该文件应包含有效的C代码。

答案 1 :(得分:2)

除了扩展名,如果你转到File Properties->Advanced,则会有一个Compile As选项,可用于明确将代码视为C代码。

它为C ++生成/TP,为C生成/TC

正如约阿希姆在评论中指出的那样,VC ++并不是这个星球上最符合标准的编译器,因此选择“无论有效”可能实际上是一个合理的选择。

答案 2 :(得分:0)

没有C或C ++项目。任何项目都可以混合使用C,C ++和其他语言文件。

目前尚不清楚你期待的第二个问题是什么样的答案。 C语言使用C编译器编译,C ++语言使用C ++编译器编译。很难想象其他案例是可能的。这两个编译器可能会也可能不会被实现为单个可执行程序,但这是一个相当无趣的细节。