制作Makefile

1
2
3
4
5
6
7
8
9
10
11
12
LIBDIR=-L/home/users/0927/systemc-2.3/lib-linux64
INCDIR=-I/home/users/0927/systemc-2.3/include
LIB=-lsystemc
FILES=main.cpp\
path_to_cpp1.cpp\
path_to_cpp2.cpp\
path_to_cpp3.cpp

all:
g++ -Wall -std=c++11 -o test $(FILES) $(LIBDIR) $(INCDIR) $(LIB)
clean:
rm -rf *.o

命令行使用:make 即可编译。

使用VSCode编译

根据上面的方法,添加 Makefile 文件,确保 make 能正常编译。

VSCode 打开项目文件,项目根目录添加 .vscode 文件夹及三个 json 文件,如下:

  • .vscode/ (VSCode配置)
    • settings.json
    • launch.json
    • tasks.json
  • main.cpp (源码)
  • Makefile

以下仅介绍这三个文件的用法。

settings.json

这是 VSCode 的单个项目的配置文件,此处用来添加 SystemC 及相关库的头文件等,用来实时纠错(不加也不影响编译)。

1
2
3
4
5
{
"C_Cpp.default.includePath": [
"/home/users/0927/systemc-2.3/src"
]
}

tasks.json

用来执行 make 命令,在 launch 时自动调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "make",
"problemMatcher": [],
"dependsOn": [
"clean"
]
},
{
"label": "clean",
"type": "shell",
"command": "make",
"args": [
"clean"
],
"problemMatcher": [],
},
]

}

args 里面可以添加参数,如 make clean 可以设置为 “args": ["clean"]

launch.json

用来打开需要调试的程序。

按 F5 一键执行,自动调用 tasks.json 中的 make 命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"version": "0.2.0",
"configurations": [
{
"name": "debug hello world",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/test", // 要运行的程序
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}

这里 type: cppdbg 需要依赖 C/C++-Linux 插件