Windows搭建交叉编译环境:MSYS2 编译XLSXIO

首先安装MSYS2
从官网下载安装程序,当前最新版:msys2-x86_64_20190524.exe
http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20190524.exe
参照官网上的安装说明即可成功安装MSYS2。
MSYS2更改为国内源:
C:\msys64\etc\pacman.d目录下有三个文件,C:\msys64为MSYS2的安装目录。
mirrorlist.msys

##
## MSYS2 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
Server = http://mirror.bit.edu.cn/msys2/msys/$arch
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch/
Server = http://repo.msys2.org/msys/$arch/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/$arch/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/msys/$arch/
Server = https://mirror.yandex.ru/mirrors/msys2/msys/$arch/

mirrorlist.mingw32

##
## 32-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686/
Server = http://mirror.bit.edu.cn/msys2/mingw/i686
Server = http://repo.msys2.org/mingw/i686/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/i686/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/i686/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/i686/

mirrorlist.mingw64

##
## 64-bit Mingw-w64 repository mirrorlist
##

## Primary
## msys2.org
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64/
Server = http://mirror.bit.edu.cn/msys2/mingw/x86_64
Server = http://repo.msys2.org/mingw/x86_64/
Server = https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
Server = http://www2.futureware.at/~nickoe/msys2-mirror/mingw/x86_64/
Server = https://mirror.yandex.ru/mirrors/msys2/mingw/x86_64/

每个文件前两行,是国内的源。大名鼎鼎,只要做过linux方面工作的,这是不可缺少的。特别是校园网内的用户来说,你的机器都不用能上互联网只要能上互联网就能成功访问所有校园网的源。做ANSYS集群时用到Centos系统用到上面的源,当然地址不同。
在开始成功安装后在开始菜单里面有MSYS2 64bit菜单,里面有三个子菜单

MSYS2 MinGW 32-bit
MSYS2 MinGW 64-bit
MSYS2 MSYS

分别代表三种编译方式,MSYS2 MinGW 32-bit只能编译x86程序,MSYS2 MinGW 64-bit能编译x64和x86程序,默认为x64。MSYS编译的程序需要MSYS的动态库。MinGW编译的程序不用额外的动态库支持。
我们执行MSYS2 MinGW 64-bit。运行窗口和Linux命令行模式终端。试过多个Linux命令好用。但是yum命令不支持。和yum类似的命令是pacman。
安装包
pacman -S 包名:例如,执行 pacman -S firefox 将安装 Firefox。你也可以同时安装多个包,
只需以空格分隔包名即可。
pacman -Sy 包名:与上面命令不同的是,该命令将在同步包数据库后再执行安装。
pacman -Sv 包名:在显示一些操作信息后执行安装。
pacman -U:安装本地包,其扩展名为 pkg.tar.gz。
pacman -U http://www.example.com/repo/example.pkg.tar.xz 安装一个远程包(不在 pacman 配置的源里面)

删除包
pacman -R 包名:该命令将只删除包,保留其全部已经安装的依赖关系
pacman -Rs 包名:在删除包的同时,删除其所有没有被其他已安装软件包使用的依赖关系
pacman -Rsc 包名:在删除包的同时,删除所有依赖这个软件包的程序
pacman -Rd 包名:在删除包时不检查依赖。

搜索包
pacman -Ss 关键字:在仓库中搜索含关键字的包。
pacman -Qs 关键字: 搜索已安装的包。
pacman -Qi 包名:查看有关包的详尽信息。
pacman -Ql 包名:列出该包的文件。

其他用法
pacman -Sw 包名:只下载包,不安装。
pacman -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。
pacman -Scc:清理所有的缓存文件。

进入到MINGW64控制台以后,首先执行

pacman -Syu 更新软甲包
这里有个小坑,说下我的经历:

pacman -S gcc
pacman -S make
pacman -S cmake

安装完成后,在我的MinGW64下没有任何文件。说说这里的坑,其实这没有安装到MinGW 64-bit下而是安装到MSYS下了。你要是执行 gcc也能返回但是就不是MinGW 64-bit而是MSYS的了。
需要往MinGW 64-bit里安装软件需要下面的指令:
pacman -S mingw-w64-x86_64-gcc

有了上面的基础就可以了。编译你的项目,看看需要啥就安装然后编译即可。

下面编译:XLSXIO

pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-doxygen

前面几个都熟悉是开发环境,最后一个工具负责解析编译参数。至此环境编译环境搭建完毕。
XLSXIO需要minizip,因此必须安装minizip
pacman -S mingw-w64-x86_64-minizip
安装成功,但是使用pacman -S minizip 错误:未找到目标:minizip
下面是截取xlsxio官网的一部分:Building with CMake

configure by running cmake -G"Unix Makefiles" (or cmake -G"MSYS Makefiles" on Windows) optionally followed by:
-DCMAKE_INSTALL_PREFIX:PATH=<path> Base path were files will be installed
-DBUILD_STATIC:BOOL=OFF - Don't build static libraries
-DBUILD_SHARED:BOOL=OFF - Don't build shared libraries
-DBUILD_TOOLS:BOOL=OFF - Don't build tools (only libraries)
-DBUILD_EXAMPLES:BOOL=OFF - Don't build examples
-DBUILD_EXAMPLES:BOOL=OFF - Don't build examples
-DWITH_LIBZIP:BOOL=ON - Use libzip instead of Minizip
-DLIBZIP_DIR:PATH=<path> - Location of libzip library
-DMINIZIP_DIR:PATH=<path> - Location of Minizip library
-DWITH_WIDE:BOOL=ON - Also build UTF-16 library (libxlsxio_readw)
build and install by running make install (or make install/strip to strip symbols)
我的编译指令:

cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX=D:/SDK/xlsxio/Install
这里出过错误cmake error: could not find cmake_root,执行下面指令即可:
hash -r
make install
注意上面的路径必须是/不能是\。至此成功编译。
要是不带参数默认是C:\Program Files,因为没有访问权限因此install失败。
操作系统:windows 7 SP1 旗舰版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值