Windows系统
安装 vcxsrv, xshell, xftp。
clion在Windows上可以远程linux开发,但是调试多个tcp程序不如命令行手动gdb来的实在。
调试redis源码也要用gdb,反正无论怎样都是要用gdb调试的,逃不开躲不过,还是尽早适应的好。
不在xshell中用vim写C++,而是通过X11使用vscode写C++。不使用vscode调试C++,而是在命令行手动gdb进行调试。
vim的配置太恶心了,要什么功能都要用插件去实现,选插件然后配置太麻烦,关键的是没法保证实现想要的效果,浪费生命浪费时间。
抛弃vim,拥抱vscode,从我做起!
在windows上跑虚拟机才是正解,linux开发环境使用X11更加方便,只要CPU够强、内存够大,鱼与熊掌可以兼得。
Fedora34系统环境从零开始
系统安装
1. 使用 Fedora-Workstation-Live-x86_64-34-1.2.iso
安装系统
开发环境使用 Workstation版, 不用Server版。配置默认为字符界面,桌面在需要时再进行切换。
自定义LVM磁盘分区, 设置登录账号。
2. 更新系统
1
| [lukas@fedora muduo]$ dnf update
|
3. 调整运行级别
配置默认为字符界面,这样虚拟机需要的运行资源占用少。
1
| [lukas@fedora muduo]$ systemctl set-default runlevel3.target
|
4. C++编译工具
1 2 3 4 5 6
| dnf install -y boost boost-devel zlib-devel curl-devel \ protobuf protobuf-devel cmake gcc gcc-c++ gdb make \ tmux git vim openssh-server
dnf install -y clang clang-devel clang-libs llvm llvm-doc \ llvm-devel clang-tools-extra clang-analyzer
|
5. VSCode
5.1 按文档安装
1
| https://code.visualstudio.com/docs/setup/linux
|
5.2 launch.json 示例
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 26 27 28
| { "version": "0.2.0", "configurations": [ { "name": "asio_chat_server", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/bin/asio_chat_server", "args": ["4000"], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build-all" } ] }
|
5.3 tasks.json 示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "version": "2.0.0", "tasks": [ { "label": "build-all", "type": "shell", "command": "/usr/bin/bash vscode.sh", "problemMatcher": [], "group": { "kind": "build", "isDefault": true } } ]
}
|
菜单 终端 -> 运行生成任务(Ctrl+Shift+B), 会运行 tasks.json 中 "isDefault": true
的task。
X11环境下的输入法
Fedora默认输入法是Ibus,当运行级别为3的时候,Ibus相关的服务不是开机启动的,需要你在xshell连上之后,手动启动ibus。
0. 用到的包
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [lukas@localhost yum.repos.d]$ rpm -qa | grep ^ibus ibus-libs-1.5.24-5.fc34.x86_64 ibus-gtk2-1.5.24-5.fc34.x86_64 ibus-gtk3-1.5.24-5.fc34.x86_64 ibus-1.5.24-5.fc34.x86_64 ibus-setup-1.5.24-5.fc34.noarch ibus-libzhuyin-1.10.0-2.fc34.x86_64 ibus-m17n-1.4.9-1.fc34.x86_64 ibus-libpinyin-1.12.0-3.fc34.x86_64 ibus-anthy-python-1.5.12-7.fc34.noarch ibus-anthy-1.5.12-7.fc34.x86_64 ibus-hangul-1.5.4-5.fc34.x86_64 ibus-typing-booster-2.15.16-1.fc34.noarch [lukas@localhost yum.repos.d]$
|
1
| sudo dnf install ibus-libs ibus-gtk2 ibus-gtk3 ibus ibus-setup ibus-libzhuyin ibus-m17n ibus-libpinyin ibus-anthy-python ibus-anthy ibus-hangul ibus-typing-booster xsel
|
1. 复制粘贴
1
| sudo dnf -y install xsel
|
1. 设置快捷键
1
| [lukas@fedora muduo]$ ibus-setup
|
在程序窗口中设置为 Ctrl + 空格
2. 设置Ibus相关环境变量
1 2 3 4 5
| export XIM=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XIM_PROGRAM="ibus-daemon" export XMODIFIERS="@im=ibus"
|
在 ~/.bashrc 里面添加
3. 手动启动Ibus守护进程
4. 剪切板复制粘贴
修改ssh配置,在 /etc/ssh/ssh_config
文件配置上述选项。
vmware中启用剪切板复制粘贴。
X11环境下可能出现的问题
- 文本输入时,按了字母数字外的键盘按键,出现一直输入222222222222222222222222无法停止的现象
这是一个偶尔出现的状况,不太清楚原因,没找到彻底的解决办法。
解决办法: 关闭程序,重新开启程序