我正在使用
- g ++
- GTK3
- VSCode
我如何使以下各项起作用:
- gts的智能/代码完成
- 内置于VSCode中
- 使用VSCode进行调试
问题:
VSCode找不到包含项-特别是#include <gtk/gtk.h>
在源代码中为红色。
我正在使用
我如何使以下各项起作用:
问题:
VSCode找不到包含项-特别是#include <gtk/gtk.h>
在源代码中为红色。
要注意的重要一点是,您需要告诉VSCode包含路径和编译器标志才能正常工作。
.vscode
。打开它。pkg-config --cflags gtk+-3.0
和pkg-config --libs gtk+-3.0
的输出应用于它们各自的配置。.vscode/c_cpp_properties.json
。添加以下内容。
{
"env": {
"myDefaultIncludePath": [
"${workspaceFolder}","${workspaceFolder}/include"
],"myCompilerPath": "/usr/local/bin/g++"
},"configurations": [
{
"name": "include paths","intelliSenseMode": "g++-8","includePath": [
"/usr/include/gtk-3.0","/usr/include/at-spi2-atk/2.0","/usr/include/at-spi-2.0","/usr/include/dbus-1.0","/usr/lib/x86_64-linux-gnu/dbus-1.0/include","/usr/include/gtk-3.0","/usr/include/gio-unix-2.0","/usr/include/cairo","/usr/include/libdrm","/usr/include/pango-1.0","/usr/include/harfbuzz","/usr/include/fribidi","/usr/include/atk-1.0","/usr/include/pixman-1","/usr/include/freetype2","/usr/include/libpng16","/usr/include/gdk-pixbuf-2.0","/usr/include/libmount","/usr/include/blkid","/usr/include/uuid","/usr/include/glib-2.0","/usr/lib/x86_64-linux-gnu/glib-2.0/include"
],"compilerPath": "/usr/local/bin/g++","cStandard": "c11","cppStandard": "c++17","browse": {
"path": [
"${workspaceFolder}"
],"limitSymbolsToIncludedHeaders": true,"databaseFilename": ""
}
}
],"version": 4
}
请注意,“ includePath”的内容是pkg-config --cflags gtk+-3.0
的输出,没有前导-I
且带有双引号和逗号。 您可能必须根据计算机的输出调整值
您要在.vscode/tasks.json
内创建一个具有以下内容的新任务:
{
"type": "shell","label": "gcc debug build active file - with GTK","command": "/usr/bin/gcc","args": [
"-g","-pthread","-I/usr/include/gtk-3.0","-I/usr/include/at-spi2-atk/2.0","-I/usr/include/at-spi-2.0","-I/usr/include/dbus-1.0","-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include","-I/usr/include/gio-unix-2.0","-I/usr/include/cairo","-I/usr/include/libdrm","-I/usr/include/pango-1.0","-I/usr/include/harfbuzz","-I/usr/include/fribidi","-I/usr/include/atk-1.0","-I/usr/include/pixman-1","-I/usr/include/freetype2","-I/usr/include/libpng16","-I/usr/include/gdk-pixbuf-2.0","-I/usr/include/libmount","-I/usr/include/blkid","-I/usr/include/uuid","-I/usr/include/glib-2.0","-I/usr/lib/x86_64-linux-gnu/glib-2.0/include","${file}","-lgtk-3","-lgdk-3","-lpangocairo-1.0","-lpango-1.0","-latk-1.0","-lcairo-gobject","-lcairo","-lgdk_pixbuf-2.0","-lgio-2.0","-lgobject-2.0","-lglib-2.0","-o","${fileDirname}/${fileBasenameNoExtension}"
],"options": {
"cwd": "/usr/bin"
},"problemMatcher": [
"$gcc"
],"group": {
"kind": "build","isDefault": true
}
}
args
中另外两个缩进部分。pkg-config --cflags gtk+-3.0
的输出。 (不过这次是-I
s。)pkg-config --libs gtk+-3.0
的输出(加引号和逗号)您要在.vscode/launch.json
文件中创建一个新的配置。在我的设置中,vscode一直使用错误的配置,因此我删除了其他配置。以下是该文件的全部内容,只有一种配置。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information,visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0","configurations": [
{
"name": "debug with gdb (no build)","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [
{
"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true
}
],"preLaunchTask": "","miDebuggerPath": "/usr/bin/gdb"
}
]
}