【C】Win10下cmake和gcc的学习(一)介绍以及环境的配置


前言

因为最近想要研究一下ETHash算法挖矿时,无法使用4G显存以下显卡的问题(感觉用内存装DAG数据也是可以的。只是使用内存效率比较低)。为了实际地测试如果使用内存或者多显卡挖矿下显存共享时的性能损耗有多大所以想学习一下CUDA。
CUDA可以使用多种语言进行编程,如C/C++, fortran, python, matlab,但是支持最好的是可能是C/C++,同时想巩固一下对底层的学习,为以后进行C\C++ Python混合编程打基础,所以使用C/C++语言进行CUDA的学习。
VS是一款很好的IDE,很多人推荐我使用。但是个人不是很喜欢这种重量级的软件,我比较喜欢简洁,所以选择使用gcc、g++作为编译环境

gcc/g++和cmake的介绍

gcc and g++分别是GNU的c & c++编译器。gcc/g++在执行编译的时候一般有下面4步:

⒈预处理,生成.i的文件[预处理器cpp]。
⒉将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]。
⒊由汇编变为目标代码(机器代码)生成.o的文件[汇编器as]。
⒋连接目标代码,生成可执行程序[链接器ld]。

cmake

你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。
CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等

安装gcc

在Win10下安装gcc的步骤与Linux有一些不同,我采取的方式是,先通过安装MinGW来安装gcc。步骤如下:

  1. 首先下载MinGW安装包(下载地址:https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe )
  2. 下载完成后双击打开,一路默认下一步执行
  3. 安装完成之后,将MinGW安装目录下的bin文件夹,加入到系统的环境变量。
    ps.在笔者尝试安装的的过程中,遇到了以下两个问题。
  4. MinGW的官网,打不开或者MinGW内容已经不再了。
  5. MinGW安装慢
    解决办法:
    对于问题1,更换其他网站下载MinGW,如我在第一步给出的网站
    对于问题2,检查是否是在下载文件时,网络不流通。有些文件在国外的服务器,所以当无法下载的时候,可以使用梯子试一下

安装cmake

Win10下cmake的安装更加简单,步骤如下:

  1. 下载cmake (https://cmake.org/)
  2. 根据向导默认安装