合作厂商A的代码,虽然宣称支持跨平台,早期也的确做过大量的平台适配工作。但目前看来,跨平台的工作应该是暂停了,至于后期是否重新拾起来不得而知。
除了客户端是 windows 版本之外,所有的服务(包括设备接入、流媒体服务、流媒体服务调度、存储服务、存储服务调度等等)都是使用 centos7 作为部署环境的。至于是否使用 centos7 作为开发环境,就看各位喜好了,但编译环境肯定还是 centos7 没跑了。
如果使用 centos7 作为编码环境,有两个选择:
- 自己搭建虚拟机,借由图形界面的 IDE 进行开发,使用 git/svn 等版本控制工具时也更加直观
- 使用 xshell 等工具远程访问开发服务器,借由 vim 进行开发
后者更具有灵活性,也更方便和同事合作开发,避免同事改动内容后(未提交 svn)手工导出到虚拟机的烦恼,后期如果权限收紧 svn 不再开放外网权限,手工导出源码存在合规问题,即便合规导入导出也是一件很繁琐的事情。但没有图形界面沟通时总是短板(组内同事水平不一)。
先尝试 vim 编码开发,如果学习曲线不够平滑,效率提升困难,后面试验使用图形界面进行开发。
vimplus & gdb
安装 vim,使用 vim --version
查看其是否支持 python,否则需要源码方式重新安装 vim
如果 vim 只支持 python,不支持 python3,那么安装 vimplus 过程中编译 YouCompleteMe 就不能任性地输入 3。
安装过程中,最好配置代理服务器,保证网络没问题。
之后使用 vim hello.cpp
遇到以下报错提示:
The ycmd server SHUT DOWN (restart with ‘:YcmRestartServer’)
解决方式参考 StackOverflow , 进入 YouCompleteMe 插件目录 ~/.vim/bundle/YouCompleteMe
and ran python install.py
,执行重装指令。
遇到如下报错提示,不支持对 cpp 的语义补全:那就试试 python install.py --clang-completer
ValueError: No semantic completer exists for filetypes: [u’cpp’]
Windows 下远程开发
使用 visual code :visual studio 远程开发
使用 msvc :使用vs2019进行Linux远程开发
有位同学碰到了相同的问题,VS Code 构建 C++ 远程开发环境 IDE ,他在 MSVC 和 VS Code 等多个方案中选择了后者。
scp
在 windows 编码;在 合作厂商A的主机编译;在堡垒机的容器中测试;好麻烦。
scp 属于openssh-clients这个包,运行:
yum -y install epel-release && yum -y install openssh-clients
拷贝动态库:
scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64/SO/lib/libws_d.so /mnt/Arges/usr/bin/SO/WS/ws.so && md5sum /mnt/Arges/usr/bin/SO/WS/*
拷贝 STDU:
scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64//MS/bin/STDU_d /mnt/Arges/usr/bin/STDU && md5sum /mnt/Arges/usr/bin/*
拷贝调度服务:
scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64//MS/bin/STDU_Scheduler_d /mnt/Arges/usr/bin/STDU_Scheduler && md5sum /mnt/Arges/usr/bin/*
或者压缩文件等:
scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64/SO/lib/solib-r*.tar.gz /mnt/Arges/usr/bin/SO/
更多工具
CentOs7 安装最新版的 Git ,使用软件源 yum install git
安装的版本过低,不支持 git svn
命令。
查看 git 网站的权威描述:Download for Linux and Unix
TODO
- 升级 gcc/g++ 版本到新版本(具体版本待定),GCC, the GNU Compiler Collection
- 使用 vcpkg 在 linux 平台安装 spdlog 和 boost 等库,要求 g++ >= 6
- 借由对三方库的使用,熟悉 vimplus 的跳转等操作,熟悉 gdb 调试等
How does p command work in vim?
windows 系统下 git 中 vim 的光标能否设置?
centos8
dnf 包管理器
CentOS Stream 8 的区别
如何从 CentOS 8 升级/迁移到 CentOS Stream 8
mariadb
mysql_install_db — Initialize MySQL Data Directory
mysql_install_db is deprecated as of MySQL 5.7.6 because its functionality has been integrated into mysqld, the MySQL server. To initialize a MySQL installation, invoke mysqld with the
--initialize
or--initialize-insecure
option.
windows 平台使用 git bash 执行 ./mysql.exe -u
连接数据库时,用户名或密码错误等失败场景会打印,但成功的场景中没有输出,程序假死。使用 powershell 功能正常。
以下版本的数据库,[默认账户及其鉴权](mysql_install_db - MariaDB Knowledge Base) ,还是要 设置密码
1 | fnie@LAPTOP-3J1Q3U7C MINGW64 /e/mariadb-10.6.5-winx64/bin |