进程间通信——环境问题
ubuntu 20.04 , c++ , vscode
(c++这里不谈)
1.ubuntu 20.04 :
云服务器后台,云服务器实例,重装系统/更多->重新安装
(在这之前有用的代码记得备份上传到gitee。)
2.vscode:
编辑器->支持插件化的配置。
下载好之后,我们可以在桌面创建一个文件夹code,然后打开vscode,点击文件,选择打开文件夹code。
点击第一个图标,新建文件。
我们的第一个文件code.c。
而刚刚的代码就在我们在桌面创建的code文件夹里。
目前,在我们Windows当中,刚刚写的代码是编译不了的,在vscode也是默认编译不了的。当然这个不是重点。
我们今天把vscode安装好,要干什么?
做远程开发!
我想拿vscode远程登录上我们的云服务器/虚拟机,然后在本地写对应的代码,然后vscode 远程开发相关内容整理。
- 当前代码编译情况:
- 目前写的代码在 Windows 中默认无法编译,vscode 也默认不支持直接编译。
- 今日核心任务:远程开发
- 目标:用本地的vscode 远程连接云服务器,在本地写代码后,由vscode 自动同步到云服务器。
- 优势:在 Windows 图形界面下开发,代码实际运行在云服务器,贴近企业常用开发模式。
- vscode 插件的作用:
- vscode 是编辑器,支持通过插件扩展功能,方便配置开发环境。
- 针对 C/C++ 开发:因 vscode 由微软开发,对 C/C++ 支持友好,通常只需装 1-2 个核心插件即可,本次会额外推荐几个实用插件。
推荐插件1.remote-SSH
这里我已经安装好了,一旦安装好之后,最左边栏就会出现一个小电脑图标,点就去,就是下面这样的。
点加号新建远程。
按上面的格式添加。
可以打开配置文件看一下,就有我们刚刚添加的内容
如果不想要这个主机了,可以把config这个配置文件给删掉,或者把里面的内容给删掉,就可以了。
现在我已经有了对应的添加进来的远程连接主机,然后要干什么呢?
我们可以点击这个箭头(在当前窗口中连接),点了之后它就会自动弹出来。
我们也可以点击箭头后的窗口图标(在新窗口中连接),点击之后就会新跳出一个窗口,显示上图内容。
连接成功。
之后我们可以打开我们的文件夹。
要是觉得字体小,可以ctrl+加号:放大。
此时自动识别的工作路径不是我们Windows上的路径,而是我们在云服务器上的家目录。
然后我们打开一个目录创建一个文件夹,在文件夹下面创建一个文件test.c。
写完代码之后,ctrl+s,保存。
这样就会同步到远端服务器。
ubuntu@VM-8-2-ubuntu:~/code/test$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:17 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:16 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 19 00:18 vscode/
ubuntu@VM-8-2-ubuntu:~/code/test$ cd vscode
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ls -l
total 4
-rw-rw-r-- 1 ubuntu ubuntu 77 Aug 19 00:21 test.c
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ cat test.c
#include <stdio.h>int main()
{printf("hello world\n");return 0;
}
编写一个实例文件。
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ cat test.c
#include <stdio.h>int main()
{printf("hello world\n");printf("hello world\n");printf("hello world\n");return 0;
}
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ cat Makefile
code.exe:test.cgcc -o $@ $^
.PHONY:clean
clean:rm -f code.exe
在我们写好文件要编译时,ctrl+~,即可调出命令行。
ubuntu@VM-8-2-ubuntu:~/code/test$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:17 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:16 ../
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 19 12:17 vscode/
ubuntu@VM-8-2-ubuntu:~/code/test$ cd vscode
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ll
total 20
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 19 12:17 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:17 ../
-rw-rw-r-- 1 ubuntu ubuntu 48 Aug 19 09:32 code.cpp
-rw-rw-r-- 1 ubuntu ubuntu 65 Aug 19 12:20 Makefile
-rw-rw-r-- 1 ubuntu ubuntu 135 Aug 19 00:29 test.c
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ make
gcc -o code.exe test.c
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ll
total 40
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 19 12:23 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:17 ../
-rw-rw-r-- 1 ubuntu ubuntu 48 Aug 19 09:32 code.cpp
-rwxrwxr-x 1 ubuntu ubuntu 16696 Aug 19 12:23 code.exe*
-rw-rw-r-- 1 ubuntu ubuntu 65 Aug 19 12:20 Makefile
-rw-rw-r-- 1 ubuntu ubuntu 135 Aug 19 00:29 test.c
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ./code.exe
hello world
hello world
hello world
运行成功!
当然我们在Xshell上也可以运行。
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ll
total 40
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 19 12:23 ./
drwxrwxr-x 3 ubuntu ubuntu 4096 Aug 19 00:17 ../
-rw-rw-r-- 1 ubuntu ubuntu 48 Aug 19 09:32 code.cpp
-rwxrwxr-x 1 ubuntu ubuntu 16696 Aug 19 12:23 code.exe*
-rw-rw-r-- 1 ubuntu ubuntu 65 Aug 19 12:20 Makefile
-rw-rw-r-- 1 ubuntu ubuntu 135 Aug 19 00:29 test.c
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ ./code.exe
hello world
hello world
hello world
推荐插件2.GDB Debug
如果需要调试,我们可以安装插件——GDB Debug
安装之后就会出现一个小三角。
我们推荐在Xshell上使用gdb,在unbuntu安装的命令是
$ sudo apt install gdb
ubuntu@VM-8-2-ubuntu:~/code/test/vscode$ gdb code.exe
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.2) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from code.exe...
(gdb)
要是觉得gdb不方便,我们可以安装cgdb.
$ sudo apt install cgdb
$ cgdb code.exe
推荐插件3.如果我们要做cpp的开发,推荐安装下面这几个插件。
推荐插件4.主题设置,安装下面这个插件。
推荐插件5.汉化。
推荐插件6.AI插件
最后推荐一个插件,可以帮我们写一些代码块。一直Tab就可以。
//code.cpp
#include <iostream>
int main()
{//一个冒泡排序的例子 int arr[] = {5, 3, 8, 4, 2};int n = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < n - 1; i++){for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]){//swap arr[j] and arr[j+1]int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for (int i = 0; i < n; i++)std::cout << arr[i] << " "; //输出排序后的数组 std::cout << std::endl;return 0;
}
上面是我们自动补全的代码
在终端运行之前我们要安装一下g++
$ sudo apt install g++
运行:
$ g++ code.cpp
$ ./a.out
2 3 4 5 8
当然我们在vscode也可以设置。
结语:环境问题是进程间通信的基石,也是我们探索更深技术的起点。在下一篇中,我们将真正进入进程间通信的核心领域,一窥管道、消息队列和共享内存等机制的奥秘。准备好,我们将一起解码这些强大的通信方式!