【发布时间】:2020-07-30 15:57:47
【问题描述】:
所以我在代码编辑器窗口中编写了一个程序,当检查它时,一切都说得通。没有错误(红色波浪线),我理解那里的警告/建议。
然后我去构建代码并运行它,它不会运行,因为它发现了错误。在撰写本文时,其中有 29 个。它在输出窗口中显示它们。最糟糕的部分是代码编辑器本身不显示相应的错误。输出窗口会在第 13 行说是一个错误,但我会去那里,代码编辑器说一切都很好,没有错误。那么哪个是正确的呢?
几个例子: 我有一个向量类
vector<Point>points;
编辑器说没问题,但是输出窗口显示 "error: missing ';'在“”之前,所以在纸上它要我修复它
vector;<Point>points;
但这显然是错误的,然后编辑器也将其突出显示为错误。其他错误也没有意义。我有一个函数叫
string toString(){}
输出窗口将再次显示 "error: missing '('" 但是没有完整的功能没有丢失位。
我如何让代码编辑器和输出窗口协同工作并显示实际存在的错误,因为现在它们相互冲突。
【问题讨论】:
-
请显示minimal reproducible example。检查是否包含所有内容,不要忘记
std::或using namespace std;(但请注意后者is considered bad practice)。此外,编译器通常是正确的,智能感知可能会有一些问题。最后检查您发现的第一个错误,通常缺少大括号或分号会导致文档进一步出现错误。您可能还想在另一个编译器中编译您的代码,并希望得到更准确的错误消息。 -
智能感知并不总是正确的。
-
error: missing ';' before '<'"可能意味着您忘记包含向量,或者您将#include <vector>放在#include "pch.h"之上并且不知道#include "pch.h"之上的每一行都被编译器默默忽略,因为这是预编译头文件如何在 Visual Studio 上工作。 -
“pch.h”代表什么?我在相应的 .h 文件中的标题下方有 #include
。 -
" 我猜 C++ 不知道向量是什么" - 不,命名空间不会自动添加(这违背了命名空间的概念)。正如 Barnets 的回答所建议的那样,您必须明确说明名称空间。
标签: c++ visual-studio