Joh*_*ohn 2 c++ visual-studio-2010
我正在使用Visual Studio 2010 Express,我收到文件test.h的以下错误,当编译输出时:
test.h(4): error C2061: syntax error : identifier 'test'
test.h(4): error C2059: syntax error : ';'
test.h(4): error C2449: found '{' at file scope (missing function header?)
test.h(18): error C2059: syntax error : '}'
Run Code Online (Sandbox Code Playgroud)
文件test.h描述如下:
#ifndef TEST_H
#define TEST_H
class test {
int a;
int b;
public:
test(int a, int b) {
this->a = a;
this->b = b;
}
int add() {
return 0;
}
};
#endif
Run Code Online (Sandbox Code Playgroud)
VS2010项目中的另一个文件是test.c,它是:
#include "test.h"
int main(int argc, char** argv) {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了多种方法来解决这个问题.即使我定义test.h如下:
class test{
};
Run Code Online (Sandbox Code Playgroud)
我仍然收到同样的错误.
我看到了类似的问题 /sf/ask/545921351/ 没有回应.
如果有人能指出如何解决这些错误,我将非常感激.
谢谢,
Microsoft编译器支持C语言和C++语言,但它们不一样,需要区别对待(例如class,C中没有关键字,因此最终会导致错误).因此,它必须以某种方式"知道" 在编译源文件时处理的是哪种语言(C 或 C++)(因此也处理包含).
它认为您正在尝试编译C语言文件(因为它具有文件扩展名.c),而您实际上正在使用C++语言.文件重命名为具有文件扩展名的Microsoft C/C++编译器识别为C++的一个:.cpp,.cxx或.cc.
或者,如果您无法重命名该文件,您还可以使用/Tp命令行选项cl.exe强制它将该文件视为C++文件(为了完整性/Tc将强制使用C语言).
| 归档时间: |
|
| 查看次数: |
3743 次 |
| 最近记录: |