C++ 为什么Visual Studio将我的CPP和头文件标记为杂项文件,从而使它们不受intelli sense的影响 问题
您可能已经阅读了长标题:My VS 2019一直将我的头文件和CPP文件标记为“杂项文件”,从而使它们不受intelli sense的影响。我有这个问题已经有很长一段时间了,所以我非常感谢你的帮助。我应该补充一点,我正在使用CMake,这可能是问题的根源。因此,出于这个原因,我只提供CMake文件,您可能会编写错误的代码并自行检查(:C++ 为什么Visual Studio将我的CPP和头文件标记为杂项文件,从而使它们不受intelli sense的影响 问题,c++,visual-studio,visual-studio-2019,intellisense,C++,Visual Studio,Visual Studio 2019,Intellisense,您可能已经阅读了长标题:My VS 2019一直将我的头文件和CPP文件标记为“杂项文件”,从而使它们不受intelli sense的影响。我有这个问题已经有很长一段时间了,所以我非常感谢你的帮助。我应该补充一点,我正在使用CMake,这可能是问题的根源。因此,出于这个原因,我只提供CMake文件,您可能会编写错误的代码并自行检查(:这是根CMake文件: # CMakeList.txt: CMake-Projektdatei der obersten Ebene. Führen Sie hie
这是根CMake文件:
# CMakeList.txt: CMake-Projektdatei der obersten Ebene. Führen Sie hier die globale Konfiguration aus,
# und schließen Sie Unterprojekte ein.
#
cmake_minimum_required (VERSION 3.8)
project ("FirstCPPEngine")
# Schließen Sie Unterprojekte ein.
add_subdirectory ("FirstCPPEngine")
这是FirstCpEngine中的CMake文件:
# CMakeList.txt: CMake-Projekt für "FirstCPPEngine". Schließen Sie die Quelle ein, und definieren Sie
# projektspezifische Logik hier.
#
cmake_minimum_required (VERSION 3.8)
# Fügen Sie der ausführbaren Datei dieses Projekts eine Quelle hinzu.
# "src/ResourceManagement/ResourceLocation.h" "src/ResourceManagement/ResourceLocation.cpp"
add_executable (FirstCPPEngine "src/Main.cpp" "src/subfolder/insertyourwrongcodehere.h" "src/subfolder/insertyourwrongcodehere.cpp" )
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
如果有我忘记的文件,请在评论中告诉我。我希望你能帮助我。C++传统(非模块)编译器将
.cpp
文件编译成.o
文件,然后链接器将.o
文件链接成二进制文件。这些文件的确切扩展名不是固定的(您可以说服编译器使用.foo
源文件并生成.bob
目标文件)
您可能会注意到这里没有提到.h
文件
头文件由C/C++预处理器在编译源文件时使用。头文件以文本形式包含——当出现#include
时,头文件的内容会被直接复制并粘贴到编译器版本的源文件中
未包含的头文件是文本文件。此外,将该测试文件与cpp文件分开编译可能是无效的
在不使用文本包含模型的其他语言中,它们的接口声明文件可以被编译为“独立”。在C++中,这样做的编译器是在编写一些不真正发生的事情。
一个体面的做法是让StubCPP文件不做任何事,但包括每个头文件。这确保了每个头文件依次包含其依赖关系,并且应该修复您的智能感知问题。
通常C++在一个主题上的最初几个错误之后会放弃,而不是用红色来突出整个源。知道这是否是您在没有a的情况下看到的。我可以向您保证,您的代码中的问题比CMake或VS中的问题更可能出现。如果您可以提供一个最小的示例或代码片段,这将有助于解决问题。当然,IntelliSense有时会出现问题,需要根据实际情况进行分析。您可以参考Microsoft Docs about.@Yakk AdamNevraumont Alrighth,我现在已经提供了完整的项目,因为我正在磁盘上使用它。“完整的副本”不是最简单的。谢谢你的回答。有没有一种方法可以自动完成这项工作?@budsc,但是免费的。我的意思是,你可以编写一个python脚本来自动编写这些内容并将它们添加到你的项目中。说实话,这听起来很糟糕……为什么VS2019没有这个现成的功能?并且总是在添加文件后运行python脚本。…老实说,这听起来不太好(而且效率不高)我想知道为什么这个词在工业中使用。@ Budschie,因为没有包含的头文件是一个非常奇怪的事情,就CPP项目而言。你也希望至少有一个测试套件。@ Budschie,也有邋遢的C++程序员经常有<代码> .h >代码>当你制作一个CPP文件时不起作用的文件,只是<代码>包含了<代码>。因此,你会收到大量的红色蠕动。与此同时,它们的.cpp
文件几乎总是按原样编译,带有可挖掘的构建标志的项目说明。无法编译红色蠕动是合理的。请注意,C++的传入模块功能将使头文件等效nt独立编译,这将允许独立的语法检查。