Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么Visual Studio将我的CPP和头文件标记为杂项文件,从而使它们不受intelli sense的影响 问题_C++_Visual Studio_Visual Studio 2019_Intellisense - Fatal编程技术网

C++ 为什么Visual Studio将我的CPP和头文件标记为杂项文件,从而使它们不受intelli sense的影响 问题

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

您可能已经阅读了长标题:My VS 2019一直将我的头文件和CPP文件标记为“杂项文件”,从而使它们不受intelli sense的影响。我有这个问题已经有很长一段时间了,所以我非常感谢你的帮助。我应该补充一点,我正在使用CMake,这可能是问题的根源。因此,出于这个原因,我只提供CMake文件,您可能会编写错误的代码并自行检查(:

这是根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独立编译,这将允许独立的语法检查。