系统选择
- 这里跟的牛客网的C++服务器项目学习的,选择了ubuntu18.04系统,需要的同学可以自行学习:项目学习地址
- 我这里白嫖了阿里云三个月服务器,想自己开发,然后把这个项目部署一下。
- 虚拟机镜像安装方式,可以从上面链接里观看。
初始化
- 更新系统的软件包
- 执行:
sudo apt update && sudo apt upgrade
- 执行:
- 创建开发用户
- 执行:
sudo useradd username
,设置密码:sudo passwd username
,然后按照提示设置即可 - 检验一下:
su 用户名
,输入密码即可登录,默认登录到了家目录下。
- 执行:
软件安装
常用工具安装
- tree :
sudo apt-get install tree
,可以用来查看目录结构 - zip:
sudo apt-get install zip
,解压工具,其他的用到再下载 - ctags
sudo apt-get install exuberant-ctags
,代码跳转工具 - 汉化包:
sudo apt-get install language-pack-zh-hans
,系统可以用来显示中文- 配置:打开
/etc/environmen
,注意是root用户 - 文件尾部追加:
LANG="zh_CN.UTF-8"
和LANGUAGE="zh_CN:zh:en_US:en"
,然后再打开/var/lib/locales/supported.d/local
这个文件,没有就创建一个,在文件里添加:
- 配置:打开
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312
gcc、g++
- 这个比较简单,直接执行
sudo apt-get install g++
和sudo apt-get install gcc
- gdb:
sudo apt-get install gdb
mysql 安装
- 执行命令:
sudo apt-get install mysql-server
- 数据库配置:
- 启动数据库服务:
sudo service mysql start
,可以设置系统启动时,数据服务自动启动:sudo systemctl enable mysql
- 为root用户设置密码:
sudo mysql_secure_installation
,一路yes就行
- 启动数据库服务:
- 创建数据库开发用户(不要用root进行开发)
- 执行:
mysql -u root -p
登录root账户,执行CREATE USER 'new_user'@'%' IDENTIFIED BY 'password';
,%为通配符,也可以指定具体的host地址,new_user为要创建的用户名,passwprd为密码,只需要修改这三项就好了。 - 为用户增加权限:
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%';
,*.*
代表是哪个数据库的哪张表的权限,此处设置成所有表了。
- 执行:
- 安装MYSQL关于C++的相关客户端库:
sudo apt-get install libmysqlclient-dev
- 检查一下:
locate mysql.h
,执行结果/usr/include/mysql/mysql.h
,表明已经下载好了,可以调用数据库相应的头文件。
- 检查一下:
git 安装
- 执行
sudo apt install git
- 然后配置用户名和邮箱,还有远程教育仓库地址
开发工具配置
vim
- vim,原来系统本来就有但是不太好用,需要进行一些配置,这里直接使用了carl大佬的PowerVim,感觉很好用,开源地址:
https://github.com/youngyangyang04/PowerVim.git
- 安装步骤也很简单:
git clone https://github.com/youngyangyang04/PowerVim.git
cd PowerVim
sh install.sh
安装完后是这样的:
我这里换了一个自己喜欢的主题:
vscode
- 安装远程连接插件:remote-ssh(第一个)
- 配置远程服务器地址,虚拟机也是同理这么配置的
- 添加远程连接的配置(举个例子):
之后登录的时候,输入密码就可以使用了。
代码补全设置: - 在工作目录下新建个.vscode目录,然后增加以下四个文件:
- c_cpp_properties.json文件
{
"configurations": [
{
"name": "Linux",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}/**",
"/usr/bin",
"/usr/include/mysql/**"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++14"
}
],
"version": 4
}
- settings.json
{
"cmake.configureOnOpen": false,
"includePath": [
"${workspaceFolder}/**",
"/usr/bin",
"/usr/include/mysql/**"
],
}
- task.json: 用来编译程序的,编译命令行就在这里添加
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-std=c++14",
"-I",
"${fileDirname}",
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileDirname}/server"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
],
"detail": "编译器: /usr/bin/g++"
}
]
}
- launch.json:用来调试程序的
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug C++",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/server",
"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",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}