虽然目前还在用python实现自己的算法,但是还是有点略微不满足,算法迟早有一天全从python搬到c++上,先给自己立个flag。

前言

由于本人做一些模型的搭建和计算,矩阵运算必然是少不了的,本人在网上查了大量资料,各位大佬都说Eigen库比较好使,好吧,那就用它了。之前在Linux上安装了Eigen库。Linux上安装Eigen库就很简单,按人家给的说明文档操作就可以。但是windows上就比较繁琐了。我又不想用网上教程上的visual studio的那种操作方法去搞一遍,没办法,就按部就班一步一步搭建环境吧。

安装cmake工具

首先去官网cmake官网下载需要版本的安装包,在下载页面有cmake的source包或者二进制文件,个人建议还是下载傻瓜式的安装文件.msi版本,下载后直接安装就可以了。

打开命令行,输入cmake,会显示如下输出:

C:\Users\XXXXX>cmake
Usage cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
cmake [options] -S <path-to-source> -B <path-to-build> Specify a source directory to (re-)generate a build system for it in the
current working directory. Specify an existing build directory to
re-generate its build system. Run 'cmake --help' for more information.

就说明已经安装好了,如果没有输出的话,需要把cmake安装目录下的bin文件夹添加到系统环境目录。

MinGW-w64安装

先去MinGW下载页下载MinGW-w64安装文件,千万别直接用官网的在线安装器,这玩意直接让你哭。根据个人需要下载好所需要的编译器之后,将其解压到你想要安装的位置,就算是安装完成了。然后将解压目录下的bin文件夹添加到环境目录,打开命令行输入gcc -v,就可得到如下信息,说明已经将编译器安装好了。

C:\Users\XXXXX>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Program\ Files/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-posix-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)

到这里基本上把环境已经配置明白了。可以打开clion可以配置自己的工具链了。

将工具集的目录指定到MinGW-w64安装路径下的x86_64-8.1.0-release-posix-seh-rt_v6-rev0\mingw64文件夹,不是bin文件夹,这样CLion会自动识别出编译器的版本信息。在cmake一栏里面,将目录指定到cmake安装目录下的bin\cmake.exe,基本上算是大功告成了,下面的GDB目前还没整明白,暂时不用管他。

Eigen编译安装

使用cmakeGUI工具对eigen的source文件进行编译,编译完成后在编译文件夹直接使用命令 mingw32-make install即可安装。这里需要说明的是由于默认的安装地址在c盘,应该使用管理员模式的命令行。安装成功会显示

·
·
·
·
······
-- Up-to-date: C:/Program Files (x86)/Eigen3/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h
-- Up-to-date: C:/Program Files (x86)/Eigen3/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h
-- Up-to-date: C:/Program Files (x86)/Eigen3/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h

Eigen的使用

在项目的cmakelist里面添加

include_directories("C:/Program Files (x86)/Eigen3/include/eigen3")

即可调用。

由于环境变量的不同,Linux系统使用语句

find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIRS})

注:

本人使用8.2版本的mingw并没有编译成功。但是使用clion自带的9.0版本或者qt安装的10.0版本均可正常编译。这里面弯弯绕比较多,就不费神再纠结这个问题了

最新文章

  1. .NET Core采用的全新配置系统[10]: 配置的同步机制是如何实现的?
  2. Djago模板拾起
  3. HDU2433 BFS最短路
  4. C# 生成表格代碼
  5. ( 解压缩版 免安装版 或 zip版 )如何修改mysql5.6.24 字符编码
  6. [jQuery学习系列二 ]2-JQuery学习二-数组操作
  7. 如何解决机器重启后MySql服务跑不起来了1067,附解决过程
  8. Html - 横版TH+TD
  9. Eclipse下如何导入jar包【转载】
  10. hdu 1847 Good Luck in CET-4 Everybody! 博弈论
  11. [转]MVC模式已死?何不试试MOVE
  12. 前端向后台的华丽转身 — PHP基础篇
  13. 【SQL*PLUS】常规使用
  14. 实现快餐配送页面jq
  15. php cookie的问题
  16. IntelliJ IDEA安装bower
  17. 初学HTML-10
  18. Android Bitmap Drawable byte[] InputStream 相互转换方法
  19. python3之模块random随机数
  20. 学习laravel源码之中间件原理

热门文章

  1. [深度学习] Python人脸识别库Deepface使用教程
  2. BC3-牛牛学说话之-整数
  3. 探究BrainSplit-集群脑裂
  4. DRF安装与使用
  5. 常见非指纹built-in函数
  6. 通过this引用成员方法-类的构造器
  7. JSP第九次作业
  8. 笔记: C#RabbitMQ初步使用记录
  9. pdf转图片加水印压缩
  10. 分布式配置nacos搭建踩坑指南(下)