mingw(GNU工具集)32位/64位 5.16

大小:42.01MB

版本:5.16

语言:简中

更新:2025-03-20

普通下载 安全下载使用360安全下载
资源说明

《mingw(GNU工具集)32位/64位 5.16》是一款WIN系统下的GNU编译器程序开发平台,这款软件整合了很多工具,方便在开发的时候使用,软件内的功能非常丰富,操作也很简单,是一款非常不错的软件,有需要的小伙伴快来下载叭!

软件截图

mingw(GNU工具集)32位/64位 5.16

功能特色

1. 仿Linux环境,可以直接使用make命令编译,

2. 兼容性好,通用性强,解决了跨平台编译的很多麻烦。生成的应用程序(.exe)以及库函数(.a)可以直接在windows上使用,其库函数也可以直接在VC中使用,

3. 完全免费。实用工具和编译器很多(C,C++,fortran,java,perl,python......),而且经常更新,随时上网升级,

4、集成大量工具集,方便使用。

使用方法

1、安装很简单,把下载好的文件全部解压缩,汇聚在一起就可以了;建议不熟悉的人可以使用TDM/MinGW, 这个有下载和安装向导,也有打包的安装版[tdm-mingw-1.905.0-4.4.0-2.exe] (26.0 MB),安装非常简单方便;

需要提醒的是,因为lapack是fortran代码,所以必须安装一个fortran的编译器;

l、apack建议使用的编译器是gfortran;所以必须下载gfortran的程序包,这个在TDM版以及sourceforge里都有下载链接;解压缩和TDM版汇聚在一起就可以使用了;

* 另外还需要注意一点;gcc的编译器建议使用4.x版,不要使用太老的版本;从3.x到4.x gcc做了不少改进;最好使用当前最新的gcc,以避免编译新开发的程序时出现的各类奇怪的兼容问题;我现在使用的是目前最新的4.4版;

在MSYS环境下查看gcc版本,可以输入命令: gcc -v

2、 下载Lapack,解压缩,

上官网下载最新的Lapack,目前是 3.2.1 (fortran版)

把这个压缩文件放到MSYS的root下;

运行MSYS环境

> cd / 切换到root目录

> tar -xvf /lapack.tgz 解压lapack.tgz到root,

> cd lapack-3.2.1/ 切换到我们的工作目录下

3、 编译lapack

把 make.inc.example, 该名称 make.inc (这个文件很重要,一般来说,选择编译器都,定义编译参数,设置环境变量等都在这里设置);

运行:

> make blaslib 编译生成blas_LINUX.a

> make lapacklib 编译生成lapack_LINUX.a

就这么两条命令就完成编译了blas和lapack的编译了;是不是很简单啊!

需要提醒的是:

1) 默认情况下,直接输入make就会自动编译lapack,并测测试运行;但是blas库默认不会编译;可以使用make blaslib命令生成这个库;

2) make后面的参数都在makefile里面定义的;需要的时候可以自己修正;

4、 lapack和blas的应用

不详细举例,只提几点建议和需要注意的地方;

1)把blas_LINUX.a和lapack_LINUX.a 改名为libblas.a 和liblapack.a 放到系统的库目录里(这样就可以在连接的时候使用-l 命令调用了)

2) 输入命令 env |grep LIBRARY_PATH 可以查看系统默认的库文件存放路径;把这两个文件放到其中一个路径里就生效了;直接使用 -llapack -lblas 就可以在连接的时候同时调用他们; 也可以自定义一个新的库路径;例如: /lib/lapack ,然后修改etc/profile 文件; 添加export LIBRARY_PATH="$LIBRARY_PATH:/lib/lapack" 即可

PS: 重新运行MSYS,新路径才会生效;

注意: 使用的时候千万小心,不要忘记在连接的时候,添加参数 -lgfortran;

因为,这是gfortran编译的库;如果我们要在C程序中调用,并且用的gcc编译器;那么连接的 时候就要使用 -llapack -lblas -lgfortran;否则,可能将会出现大量的如: undefined reference to 'gfortran;;;这样的错误信息;

这个参数的添加,一般在程序的make.inc中定义参数的部分

如DSDP5的make.include文件中修改

LAPACKBLAS = -llapack -lblas -lg2c -lm ,把-lgfortran作为最后一个参数添加就好了;

其他的使用技巧

1 - gcc对gfortran的包容性;在4.x版本中,可以使用gcc编译fortran代码;编译出来的效果和gfortran的一样;

2 - 连接时,可以使用“-L库目录 -l库文件” 来指定库文件所在路径;另外,也可以直接给出文件名 ./lapack.a 来使用;

blas: Basic Linear Algebra Subprograms

The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix

operations. Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-

matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development

of high quality linear algebra software, LINPACK and LAPACK for example.

A Fortran77 reference implementation of the BLAS is located in the blas directory of Netlib.

blas 是许多数值计算软件库的核心, 一般是用 Fortran77 实现的, 但也有一些其它的包装, 如 cblas 就是 C 语言, 也有 C++ 的包装,

boost/ublas 是 C++ template class 的实现; 另外还有一些特别的实现, 如 intel MKL, AMD core math library

blas就是做向量、矩阵的基本运算,如加、减、乘等操作

********************************************************

lapack: Linear Algebra PACKage

LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares

solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix

factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as

reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not

general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and

double precision.

lapack 用 blas 做底层运算

许多高层的数学库都用 blas 和 lapack 做底层, 如 cvmlib, MTL 等等

lapack是做线性运算的,最常用的就是求解线性方程组,AX=b, X=A , 还有如 矩阵分解、求逆,求矩阵特征值、奇异值等

同类推荐
更多