不在 UI 中的 Visual Studio 构建错误
Posted
技术标签:
【中文标题】不在 UI 中的 Visual Studio 构建错误【英文标题】:Visual Studio Build Errors not in UI 【发布时间】:2018-01-27 22:46:16 【问题描述】:Visual Studio 一直在为我为课堂制作的“编译器”提供奇怪的构建错误。它告诉我 .cpp 函数“不是其 [标头中的母函数] 的成员”,声明的标头函数的“未知覆盖说明符”,说某些函数不采用 [this] 数量的参数......等等奇怪的是,虽然它指向某些行,但 任何地方 都没有错误标记。没有任何颜色的波浪线。无论用户界面如何,语法似乎都是正确的。所有错误都是构建错误——Intellisense 没有。
我唯一的猜测可能是#include 或继承问题,所以我给出我的代码组织是为了给你一个想法(向你展示代码本身是无用的,因为 UI 没有显示语法错误)。
如果这意味着什么,我已经在 Linux 和 Windows 之间传输了文本文件(我目前正在使用它)。供您参考,我已尝试清除项目缓存,重新构建和重新启动项目,甚至复制到新项目而错误没有变化。这是今年以来VS2017的最新更新。我的猜测是关于包含的内容,但如果不是,VS 似乎是罪魁祸首。但是让我知道可能性。
main.cpp:
//#pragma once
#include "DatalogProgram.h"
#include "Scanner.h"
#include <iostream>
using namespace std;
int main()
string filepath = "";
Scanner sc;
DatalogProgram parser;
system("pause");
return 0;
扫描仪.h:
#pragma once
#include "Token.h"
#include <fstream>
#include <vector>
class Scanner ;
DatalogProgram.h:
#pragma once
#include "Scanner.h"
class DatalogProgram ;
令牌.h:
#pragma once
#include <string>
enum Toktype ;
class Token ;
【问题讨论】:
您的 main.cpp 文件中不需要任何#pragma once
...
取点并编辑。但这并没有改变我的问题......
WFM (Visual Studio 2017 15.5.4),必须是您未显示的代码/设置的一部分。
我会展示代码,但我不知道它有多大帮助。例如,bool Scanner::scan(string filename) 得到一个错误:“在 Scanner 中找不到重载的成员函数”,即使 bool scan(string filename) 在 Scanner.h 中。我不知道展示什么会有所帮助...括号也可以正确关闭类/函数。
这听起来可能是一个循环包含问题(a.h
包括b.h
和b.h
包括a.h
)。
【参考方案1】:
找到了问题——是的,它在我的代码中。我没有在字符串和 fstream 引用之前执行“std::”,这引发了所有“无法识别”的问题。一旦我这样做并重新调整#include 链,它就可以完美运行。如果我展示一些代码,你们可能会更快地掌握它。
【讨论】:
以上是关于不在 UI 中的 Visual Studio 构建错误的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio测试运行:从测试中心的测试计划运行编码的UI自动化测试
用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
Visual Studio 2013 数据库项目 - DROP 目标中的对象但不在项目中
默认情况下,Visual Studio 2015 数据库项目是不是会删除不在项目中的存储过程?