C++在vscode中配置
1.编译器环境搭建,c_cpp_properties.json生成
前置,mingw64添加入系统环境变量,编辑快捷键:ctrl+shift+p 修改选项:编译器路径 C:/mingw64/bin/g++.exe IntelliSense 模式,这个应该是再说明一下编译的模式
2.多项目编译搭建,tasks.json生成
.cpp->右键->终端->配置任务,修改选项:args下:“
w
o
r
k
s
p
a
c
e
F
o
l
d
e
r
∗
.
c
p
p
"
,
编译该目录下所有
.
c
p
p
"
{workspaceFolder}\\*.cpp",编译该目录下所有.cpp "
w or k s p a ce F o l d er ∗ . c pp " , 编译该目录下所有 . c pp " {workspaceFolder}\demo.exe” 生成demo.exe
3.调试环境搭建,launch.json生成
调试按钮选项 “program”: “${workspaceFolder}\demo.exe”,指定要编译的项目 “miDebuggerPath”: “C:\mingw64\bin\gdb.exe”,指定调试器所在位置
4.非常合适的linux端测试代码
//父子进程利用信号携带回调函数进行通信实现交替计数
//浣跨敤SIGUSR1鍜孲IGUSR2鍦ㄧ埗瀛愯繘绋嬮棿浜ゆ浛鏁版暟
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <signal.h>
#include <errno.h>
int num = 0;
int flag;
void func1(int signo)
{
printf("F:[%d]\n", num);
num += 2;
flag = 0;
sleep(1);
}
void func2(int signo)
{
printf("C:[%d]\n", num);
num += 2;
flag = 0;
sleep(1);
}
int main(int argc, char *argv[])
{
int ret;
pid_t pid;
pid = fork();
if(pid<0)
{
perror("fork error");
return -1;
}
else if(pid>0)
{
num=0;
flag = 1;
signal(SIGUSR1, func1);
while(1)
{
if(flag==0)
{
kill(pid, SIGUSR2);
flag = 1;
}
}
}
else if(pid==0)
{
num=1;
flag = 0;
signal(SIGUSR2, func2);
while(1)
{
if(flag==0)
{
kill(getppid(), SIGUSR1);
flag = 1;
}
}
}
}