c++编译问题

本文最后更新于 2024年5月16日。

无法打开文件源python.h

一般因为includepath没设置,在c++插件设置成C:\msys64\mingw64\include\python3.10
后重启vscode好了。

include后用引号和尖括号的区别

在 C++ 中,include 指令用于在源代码中引入头文件。include 指令有两种形式:使用引号和尖括号。

  1. 使用引号

使用引号形式的 include 指令,如下所示:

#include "header.h"

使用引号的 include 指令告诉编译器在当前源文件所在目录下查找头文件。如果头文件不在当前目录下,编译器会继续在其他用户指定的目录中查找。

  1. 使用尖括号

使用尖括号形式的 include 指令,如下所示:

#include <header.h>

使用尖括号的 include 指令告诉编译器在系统目录下查找头文件。这些系统目录通常包括编译器的安装目录和标准库的目录。

总的来说,使用引号和尖括号的区别在于编译器查找头文件的路径不同。使用引号时,编译器先在当前目录下查找头文件,然后再在其他用户指定的目录中查找;而使用尖括号时,编译器只会在系统目录下查找头文件。通常情况下,系统头文件使用尖括号,而用户自定义头文件使用引号。

把头文件的路径添加到系统变量INCLUDE路径中,无效

在vscode的配置文件中添加:
c_cpp_properties.json
无效

把头文件的路径添加到系统变量C_INCLUDE_PATH路径中,有效

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\include
cl.exe在编译时如果报找不到头文件就把头文件拷贝到MSVC的include文件夹即可。
gcc E:\mydoc\sync_pc_home_work\pyfile\Algo\cythontest.c -IC:\msys64\mingw64\include\python3.10 -L<directory_containing_libpython> -l<name_of_libpython_without_lib_on_the_front> -o <output_file_name>

[4/24/2023, 4:15:03 PM] 对于 C 源文件,IntelliSenseMode 已根据编译器参数和查询 compilerPath 从“windows-msvc-x64”更改为“windows-gcc-x64”:“C:\msys64\mingw64\bin\gcc.exe”