在我的Mac上使用VS Code时,对于头文件和第三方库(在这种情况下是wxWidgets),会出现#include错误。我阅读了所有能找到的内容,在"c_cpp_properties.json"中调整了"includePath"设置,但没有任何帮助。
头文件位于与.cpp文件相同的文件夹("/src/")中。该项目构建和运行良好,但VS Code会产生#include错误,并且错误标记覆盖整个项目。
以下是屏幕截图和具有VS Code设置的JSON文件。 #include error screenshot
请帮我梳理一下。
————— 更新 —————
建议我在c_cpp_properties.json中使用以下设置:
#include错误已经消失,但第三方库(“WX”)的错误仍然存在。在上面的JSON中,“includePath”中写有“${vcpkgRoot}/x64-osx/include”的行。
这是vcpkg包,它可以帮助轻松安装第三方库。
在安装了vcpkg后,我通过vcpkg安装了wxWidgets,但该库在VS Code中没有链接(虽然构建非常好),并且我得到了如下屏幕截图所示的错误波浪线: 请您解释如何解决这个问题?
头文件位于与.cpp文件相同的文件夹("/src/")中。该项目构建和运行良好,但VS Code会产生#include错误,并且错误标记覆盖整个项目。
以下是屏幕截图和具有VS Code设置的JSON文件。 #include error screenshot
c_cpp_properties.json:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/src",
"${workspaceFolder}/**",
"/usr/local/Cellar/wxmac/3.0.5.1/include/wx-3.0"
],
"defines": [],
"macFrameworkPath": [
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
请帮我梳理一下。
————— 更新 —————
建议我在c_cpp_properties.json中使用以下设置:
{
"configurations": [
{
"name": "Mac",
"includePath": [
"${workspaceFolder}/**",
"${vcpkgRoot}/x64-osx/include",
"/usr/local/Cellar/wxmac/3.0.5/**"
],
"defines": [],
"macFrameworkPath": [
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64",
"configurationProvider": "ms-vscode.cmake-tools"
}
],
"version": 4
}
#include错误已经消失,但第三方库(“WX”)的错误仍然存在。在上面的JSON中,“includePath”中写有“${vcpkgRoot}/x64-osx/include”的行。
这是vcpkg包,它可以帮助轻松安装第三方库。
在安装了vcpkg后,我通过vcpkg安装了wxWidgets,但该库在VS Code中没有链接(虽然构建非常好),并且我得到了如下屏幕截图所示的错误波浪线: 请您解释如何解决这个问题?
C++ Intellisense
时遇到了类似的问题。因此,我转用clangd并停用了C++ Intellisense
。编译器使用CMake提供的设置,因此编译正常,但给予实时反馈的插件也需要获取该信息,例如通过读取compile_commands.json
或c_cpp_properties.json
来实现,但我不确定为什么有时候C++ Intellisense
会出现故障。但是如果您不使用clang构建代码,则clangd
也会存在问题。 - t.nieseclang 11
作为CMake的Kit,但在设置中,您有"compilerPath": "/usr/bin/g++"
,也许这就是问题的原因。您还可以检查VSCode中的“输出”选项卡以查看不同的输出,也许其中一个可以给出有关问题的线索。 - t.niese