Visual Studio 代码 "python.h: No such file or directory" windows gcc
Visual Studio Code "python.h: No such file or directory" windows gcc
我完全是 C++ 的初学者,并且疯狂地尝试将 Python 嵌入 C++ 使用 VS Code IDE 和 GCC 编译器。
我是股票,现在我一直面临这个愚蠢的错误,上面写着:
python.h: No such file or directory gcc
我已按照 "Using GCC with MinGW in VS Code" 中解释的步骤在 VS Code 中配置 C++,但我未能安装 MinGW(bin 文件夹是空的)所以我将已经安装的 CodeBlocks MinGW 添加到我的路径中,它似乎可以工作。
我安装了 python 3.8 并尝试了其他解决方案并且已经安装了 Python.h 和 python 项目中的库路径 包含路径.
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include/"
and
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs/"
这是我要编译的代码:
#include <stdio.h>
#include <conio.h>
#include <python.h>
int main()
{
PyObject* pInt;
Py_Initialize();
PyRun_SimpleString("print('Hello World from Embedded Python!!!')");
Py_Finalize();
printf("\nPress any key to exit...\n");
if(!_getch()) _getch();
return 0;
}
这是我的 c_cpp_properties.json。 (C++ 配置文件):
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include/**",
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x86"
}
],
"version": 4
}
这是tasks.json文件:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:/Program Files (x86)/CodeBlocks/MinGW/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: \"C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe\""
}
]
}
好的,所以你可能应该先完成中级 c++ 课程,但如果你是初学者并且你真的想这样做,我建议使用 visual studio 2019 或 2022,因为它更适合初学者-friendly 和依赖项都在 gui 界面中设置。
顺便说一句,我会对此发表评论,但我还没有 50 的声誉,所以很抱歉。
这个问题是一些简单错误的组合,作为初学者,我通过 gcc -l -L option flags for library link example and gcc arguments docs 中的一些挖掘解决了它。
有几个简单而重要的要点需要注意:
1.选项的顺序非常重要。如果错误,编译器将无法工作。应该是-I(大写i),-g,-L,-l(小写L),-o.
2. 要在 C++ 中嵌入 python 首先 python 包含文件 的路径必须是编译器通过 -I 选项知道。然后通过 -L 选项指向 python libraries 的路径。然后 python .lib 文件的名称 包含在 python.
的 libs 文件夹中
这是一个例子:
"-IC:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include",=>(path to python include files)
"-g",=>(debug option specified by ide)
"${file}",
"-LC:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs",=>(path to python libraries)
"-lpython38",=>(python lib contained in python libs)
"-lpython3",=>(python lib contained in python libs)
"-l_tkinter",=>(python lib contained in python libs)
"-o",=>(output argument specified by ide)
"${fileDirname}\${fileBasenameNoExtension}.exe"
希望有了这个回答,像我这样的初学者,能更快的得出结论。
Embedding python in C++ with CMake and Pybind11 and VS Code
也有很好的 youtube 教程
我完全是 C++ 的初学者,并且疯狂地尝试将 Python 嵌入 C++ 使用 VS Code IDE 和 GCC 编译器。 我是股票,现在我一直面临这个愚蠢的错误,上面写着:
python.h: No such file or directory gcc
我已按照 "Using GCC with MinGW in VS Code" 中解释的步骤在 VS Code 中配置 C++,但我未能安装 MinGW(bin 文件夹是空的)所以我将已经安装的 CodeBlocks MinGW 添加到我的路径中,它似乎可以工作。
我安装了 python 3.8 并尝试了其他解决方案并且已经安装了 Python.h 和 python 项目中的库路径 包含路径.
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include/" and "C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs/"
这是我要编译的代码:
#include <stdio.h>
#include <conio.h>
#include <python.h>
int main()
{
PyObject* pInt;
Py_Initialize();
PyRun_SimpleString("print('Hello World from Embedded Python!!!')");
Py_Finalize();
printf("\nPress any key to exit...\n");
if(!_getch()) _getch();
return 0;
}
这是我的 c_cpp_properties.json。 (C++ 配置文件):
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include/**",
"C:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x86"
}
],
"version": 4
}
这是tasks.json文件:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:/Program Files (x86)/CodeBlocks/MinGW/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: \"C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe\""
}
]
}
好的,所以你可能应该先完成中级 c++ 课程,但如果你是初学者并且你真的想这样做,我建议使用 visual studio 2019 或 2022,因为它更适合初学者-friendly 和依赖项都在 gui 界面中设置。 顺便说一句,我会对此发表评论,但我还没有 50 的声誉,所以很抱歉。
这个问题是一些简单错误的组合,作为初学者,我通过 gcc -l -L option flags for library link example and gcc arguments docs 中的一些挖掘解决了它。
有几个简单而重要的要点需要注意:
1.选项的顺序非常重要。如果错误,编译器将无法工作。应该是-I(大写i),-g,-L,-l(小写L),-o.
2. 要在 C++ 中嵌入 python 首先 python 包含文件 的路径必须是编译器通过 -I 选项知道。然后通过 -L 选项指向 python libraries 的路径。然后 python .lib 文件的名称 包含在 python.
的 libs 文件夹中这是一个例子:
"-IC:/Users/MPC/AppData/Local/Programs/Python/Python38-32/include",=>(path to python include files)
"-g",=>(debug option specified by ide)
"${file}",
"-LC:/Users/MPC/AppData/Local/Programs/Python/Python38-32/libs",=>(path to python libraries)
"-lpython38",=>(python lib contained in python libs)
"-lpython3",=>(python lib contained in python libs)
"-l_tkinter",=>(python lib contained in python libs)
"-o",=>(output argument specified by ide)
"${fileDirname}\${fileBasenameNoExtension}.exe"
希望有了这个回答,像我这样的初学者,能更快的得出结论。 Embedding python in C++ with CMake and Pybind11 and VS Code
也有很好的 youtube 教程