我在 VSCode 中安装了 C/C++ 的 makefile 扩展,在 makefile 侧面板中,我可以按 makefile 构建按钮,它就可以工作了。
我想知道是否有办法在按 F5 时运行 makefile? 我猜我需要向我的 launch.json 添加一个命令,但我不知道该怎么做。 我看到启动配置有一个名为“preLaunchTask”的设置,也许我可以创建一个任务来启动 makefile?
这是我的makefile配置
"makefile.configurations": [
{
"name":"Make main"
}
],
"makefile.buildBeforeLaunch": true,
"makefile.clearOutputBeforeBuild": true,
"makefile.launchConfigurations": [
{
"cwd": "c:\\Users\\sferr\\OneDrive\\Desktop\\dev",
"binaryPath": "c:\\Users\\sferr\\OneDrive\\Desktop\\dev\\main",
"binaryArgs": []
}
],
我从这篇文章中弄清楚了,使用 Visual Studio Code 任务自动化多个文件夹中的 C makefiles。
我花了两天时间才弄清楚如何做到这一点,所以我将在此处发布步骤。
下载 vscode 并安装 makefile 扩展,如本文所示,https://earthly.dev/blog/vscode-make/。
在文件夹的根目录中创建一个 makefile。 我的很简单,看起来像这样。
all: build run clean
build: main.o loop.o utility.o
gcc main.o loop.o utility.o -o main
main.o: main.c src/manager/manager.h
gcc -c main.c
loop.o: src/loop/loop.c src/loop/loop.h
gcc -c src/loop/loop.c
utility.o: src/utility/utility.c src/utility/utility.h
gcc -c src/utility/utility.c
run:
./main.exe
clean:
rm *.o
您的项目应该有一个“.vscode”文件夹,其中包含 settings.json、tasks.json 和 launch.json 文件。
在settings.json 文件中放入此内容。
"makefile.configurations": [
{
"name":"Make main"
}
],
"makefile.buildBeforeLaunch": true,
"makefile.clearOutputBeforeBuild": true,
"makefile.launchConfigurations": [
{
"cwd": "c:\\Users\\sferr\\OneDrive\\Desktop\\dev",
"binaryPath": "c:\\Users\\sferr\\OneDrive\\Desktop\\dev\\main",
"binaryArgs": []
}
],
{
"label": "build",
"type": "shell",
"command": "",
"args": [
"make",
"--directory=${workspaceFolder};"
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal":"always"
},
"problemMatcher": "$msCompile"
}
"configurations": [
{
"name": "Run",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}\\main.exe",
"cwd": "c:\\Users\\sferr\\OneDrive\\Desktop\\dev",
"preLaunchTask": "build"
}
]
当您按 f5 时,它现在应该运行您的 makefile。