在win10 下使用gcc

相关概念

Cygwin 简明教程

Cygwin 是一个 Windows 下的类 UNIX 环境。(这句话听起来好土 qaq)Cygwin 移植了大部分 Linux 下的软件,包括但不局限于 Bash、GCC、Git 和 VIM,甚至 GNOME 和 KDE 这类图形界面。至于移植的原理,大致都是将 Linux 下的系统调用在 Windows 下模拟,再进行交叉编译。

  • 许多类似 Cygwin 的东西

其实主要是这几个:MinGW(-w64)、MSYS(2)、Git for Windows 和 WSL。

  • MinGW

在很 JO 很 JO 以前,世界上还只有 Cygwin 的 1.3.3(现在已经是 3.0.7 了)。虽然当时 Cygwin 还刚刚开始发展,但是其缺点却已经暴露出来了:它实在太大了!所以,一小撮想搞事情的程序员站了出来,fork 了 Cygwin 的 GCC 和相关库文件,并且将它们魔改了一番,使得 GCC 能使用 Windows 的 Visual C++ API。这就成了 MinGW。后来,因为 MinGW 一直在咕咕咕,所以出现了 TDM-GCC 和 MinGW-w64 两个给 MinGW 续命的项目,TDM-GCC 现在也咕咕咕了(可见人类的本质是鸽子),而 MinGW-w64 却给 MinGW 续命成功,一直紧跟着官方 GCC 更新到了现在。

因为 MinGW 及其后续项目有着种种优点,所以它们经常被作为 Windows 下 C/C++ IDE 的自带编译器,如 Dev-C++ 和 Code::Blocks。而 MinGW 的缺点在于其使用了 Windows 的 API,而这也是 Windows 和 Linux 下会有 %I64d 等破事的原因。

  • MSYS

当 MinGW 出现之后,程序员们发现光有 GCC 不行啊,面对着如此 naive 的 Windows 命令行也照样不能干活,Cygwin 又太大了。所以 MinGW 的一群人再次 fork 了 Cygwin,把它精简了一番,就成了 MSYS。后来,MinGW 咕咕咕了,MSYS 也随之咕咕咕了,又一群程序员 fork 了新版本的 Cygwin,精简了一番,给它加上了 Pacman 包管理器(没错就是 Arch Linux 用的那个),最后给 MSYS 的名字后面加了个 2,成了 MSYS2。

  • Git for Windows

随着 Git 的快速完善,将 Git 移植到 Windows 的呼声越来越高,可是 Git 需要很多 Linux 下的命令行工具,所以不想重复造轮子的 Git 开发者们找到了 MSYS2,又将 MSYS2 做了一番精简和针对 Git 的修改,把 Git 放了进去。

  • WSL

WSL 和上述没有任何关系,这是我们的巨硬微软感觉 Linux 的那一套很吼哇,就搞来 Linux 内核进行了一番魔改,在加上了一些针对 Windows 的处理,bling! 的一声,就有了跑在 Windows 下了 Linux。当然因为也有类似 Cygwin 的模拟,所以在磁盘性能方面较慢,比起 Cygwin 差多了。好处在于 它提供了较为原汁原味的 Linux 环境。

当然 WSL 也在进步,WSL 2 直接搞了个虚拟机跑原生的 Linux 内核,再加上一些可以较完美地整合 Linux 的修改,这样做性能就可以提高很多。可惜我并不想用 Windows Insider,WSL 2 也暂时没法用。

通过git的bash来操作linux命令,为了使用gcc,需要安装gcc,通过安装mingw来获得。

安装MinGW

  1. 下载MinGW-w64 - for 32 and 64 bit Windows

  2. 添加环境变量

1
2
3
gcc -v
gdb -v
make -v

git-bash中添加路径,就可以在git-bash中使用相关命令了

1
$ export PATH="c:/.../mingw64/bin:$PATH"

在linux上使用VS code 进行C++开发

vscode安装相关插件:

  • c/c++ //支持语言环境
  • c++ Intellisense
  • visual studio Intellicode insiders
1
2
3
//vscode 快捷键
code . //为当前目录打开一个新的vs窗口
菜单->file->auto save //打开自动保存

vs code Docs: Using C++ on Linux in VS Code

双系统Ubuntu 20.04 安装

在win10基础上安装 Ubuntu 系统

准备:

  • (将被格式化的)U盘(大于25G的硬盘空间 ):引导安装Ubuntu。

  • buntu系统镜像文件。系统镜像下载

  • 启动U盘制作工具。官方推荐Rufus

  1. 制作启动U盘

插入U盘。运行Rufus。

  1. 划分硬盘空间

摘录:如果是双硬盘,需要先在C盘(按理来说就是电脑的第一块硬盘,部分电脑系统装得比较奇怪,装到了第二块硬盘)分出200M(补充:装完20.04只用了94M)的空白分区用来安装ubuntu的启动项,然后再在另一块硬盘选择最后一个盘(比如 CD两个盘的最后一个是D盘,CDE盘的最后一个是E盘,CDEF盘的最后一个是F盘,以此类推),在该盘点击右键,选择压缩卷,如下,输入压缩空间量,单位为M,如果空间充足,建议分出80G或100G,空间不足也可以分60G(1G=1024M):

具体详见:Windows10安装ubuntu16.04双系统教程 三、在windows下创建空白分区

  1. 安装系统

重启。开机时按f2进入bios(拯救者是f2,不是fn+f2)。设置Secure Boot 值为Disabled。

将Linpus lite (Gener ic-SD/MMC) 移动到首位。保存退出。

静等,直到出现Ubuntu的安装界面。

(在下面教程,分区设置时,先看Windows下安装Ubuntu 16.04双系统 的1楼评论 )

接下来步骤见:装了5次Ubuntu,告诉你win10+Ubuntu双系统的正确打开方式 中 3.2 安装系统

  1. 补充,遇到的问题与解决:

4.1 一些教程选择USB启动。但是系统提示找不到 USB boot option。解决:见1.3。Linpus lite。

(下面是以USB启动的教程:按住“shift”键,点击重启=>使用设备=>EFI USB Device。

![](https://cdn.jsdelivr.net/gh/c-parrot/source/img/blog/软件安装/1998119-20200818173718749-654987228 (1).png)

System doesn’t have any USB boot option. Please select other boot option in Boot Manager Menu.

)

4.2win相关

安装完成后,重启,将自动进入启动页面。Windows Boot Manager 是进入window 系统。

2.1. 如果想系统默认进入window,不再出现启动项界面。开机进入bios(拯救者是f2,不是fn+f2),调整boot的优先级,将Windows Boot Manager启动项移至首位。

 注:安装双系统后,首次打开window 时间会很长。如果设置了win10作为首选启动项,将需要其他工具来引导Ubuntu:

2.2. 如果win的wifi出现了问题(找不到wifi,或者根本没有wifi按钮),解决方法:win+x=>设备管理器=>网络适配器=>选择Realtek 8822BE Wireless LAN=>卸载设备=>重启(很慢,请耐心等待)。系统会重新加载WLAN。

深度学习环境配置

Linux

2.1 安装NVDIA显卡驱动

在Ubuntu,打开软件和更新=>附加驱动。 在官网NVIDIA Driver Downloads 寻找你的显卡的驱动型号。选择相应驱动版本=>应用更改 。

查看是否安装成功:

2.2 安装cuda,cudnn

Ubuntu 20.04 CUDA&cuDNN安装方法

2.3 安装anaconda

提前在win10中使用迅雷下载。打开anaconda,点击Download,右键想要下载版本,复制链接地址。

在ubuntu,找到下载的sh文件,右键=>复制到…=>ubuntu的 “下载” 文件夹中。

在下载文件夹下,在空白处右键=>在终端打开。

sh A=>按Tab键。

如果选择不初始化,请阅读随后出现的文字:注:YOUR_SHELL_NAME 是:bash 。

出现(base)即是使用了conda的base环境.

使用conda创建名为py的新环境:

如果出现 invalidURL: Failed to parse:。。。将主目录的.condarc文件中设置的源删除或者直接删掉该文件

这是没使用源(使用默认源)的.condarc:

现在有了俩个环境: base和py。

anaconda 卸载: linux上anaconda的卸载

2.4 安装tensorflow 和pytorch

pytorch

安装最新的pytorch版本https://pytorch.org/get-started/locally/

安装具体的pytorch版本https://pytorch.org/get-started/previous-versions/

cudatoolkit 应该是指cuda

(linux)conda 安装pytorch1.3.1(官方没有列出此版本命令),首先查看版本关系:Torch torchvision Python版本对应关系。创建conda环境:注意python版本根据官方,运行相应命令conda install pytorch==1.3.1 torchvision==0.4.2 cudatoolkit=10.1

去掉-c pytorch,会使用换了的国内源下载。

阿里源:

1
pip install torch torchvision -i http://mirrors.aliyun.com/pypi/simple/  --trusted-host mirrors.aliyun.com

2.5 待解决:

\1. win10引导ubuntu

\2. win10与ubuntu时间冲突: Windows 10和Ubuntu 20.04时间不同步问题解决

3 Ubuntu 20.04 尝试安装 Openpose 的问题

OpenPose - Prerequisites

Very important: New Nvidia model GPUs (e.g., Nvidia V, GTX 2080, v100, any Nvidia with Volta or Turing architecture, etc.) require (at least) CUDA 10. CUDA 8 would fail!

My system configuration

Operating system: Ubuntu 20.04

CUDA version: 10.2

CUDNN version: 8.0.2

3.1.1 Configuration

a.cmake 找不到cudnn版本:

/openpose/cmake/Cuda.cmake 中

file(READ ${CUDNN_INCLUDE}/cudnn.h CUDNN_VERSION_FILE_CONTENTS) => file(READ ${CUDNN_INCLUDE}/cudnn_version.h CUDNN_VERSION_FILE_CONTENTS)

b.

CMake Error at /usr/share/cmake-3.10/Modules/ExternalProject.cmake:2474 (message):
No download info given for ‘openpose_lib’ and its source directory:

/home/a421/YuWentao/huawei_fatigue_driving_detection/openpose/3rdparty/caffe

is not an existing non-empty directory. Please specify one of:

* SOURCE_DIR with an existing non-empty directory
* DOWNLOAD_COMMAND
* URL
* GIT_REPOSITORY
* SVN_REPOSITORY
* HG_REPOSITORY
* CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/ExternalProject.cmake:3029 (_ep_add_download_command)
CMakeLists.txt:726 (ExternalProject_Add)

无法下载Caffe =》手动下载安装。

Openpose/3rdparty:
git clone https://github.com/CMU-Perceptual-Computing-Lab/caffe

OpenPose安装过程中遇到的问题

3.2 Build

a. 找不到cudnn版本:

openpose/3rdparty/caffe/cmake/Cuda.cmake 同上

b. error: ‘CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT’ was not declared in this scope

https://github.com/weiliu89/caffe/issues/1025

https://www.jianshu.com/p/5069cfe2454d

Redis安装-linux

  • 安装
  1. 官方网站中下载压缩包,放在/opt目录下(随便放在哪个目录)。

  2. 解压:tar -zxvf /root/redis-6.2.5.tar.gz

  3. 解压后进入目录进行安装

    1
    2
    cd redis-6.2.5
    make && make install
  4. 查看安装目录/usr/local/bin

    redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何

    redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

    redis-check-dump:修复有问题的dump.rdb文件

    redis-sentinel:Redis集群使用

    redis-server:Redis服务器启动命令

    redis-cli:客户端,操作入口

  • 后台启动
  1. 备份一份redis.conf

    1
    cp /opt/redis-6.2.5/redis.conf /opt/myredis
  2. 将/opt/myredis/redis.conf中的daemonize no 改为yes

  3. 启动redis

  4. 测试:使用客户端测试,在bash中输入

    1
    redis-cli

如果在Win中安装需要借助Docker。

TeamViewer

说起 TeamViewer的鼎鼎大名,可谓家喻户晓,乃是当今首屈一指的远程连接软件。TeamViewer最大的优点是对个人用户免费,无需支付费用即可使用完整功能,此外,穿透能力非常强,可以不夸张的说能在任何防火墙和NAT转换之后进行连接远程控制或者传输文件之类。

ping一下服务器,类似于2606:、240e: ,这样网段的是IPV6类型。

正在Ping dl.teamviewer.cn.cdn.cloudflare.net

cloudflare.Inc:Cloudflare, Inc. (NYSE: NET) is on a mission to help build a better Internet. Cloudflare is a global cloud services provider that delivers a broad range of services to businesses of all sizes and in all geographies—making them more secure, enhancing the performance of their business-critical applications, and eliminating the cost and complexity of managing individual network hardware.

Pycharm

ubuntu:商店直接有,专业版和社区版的都可以直接安装。。