在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库:

1.首先讲下blas库的调用,这里以两个向量内积函数为例:

#include #include

double ddot_(int *,double *,int *,double *,int *);intmain()

{int N=2, INCX=1, INCY=1;double X[2]={1.0,1.0};double Y[2]={2.0,2.0};doublere;

re=ddot_(&N, X, &INCX, Y, &INCY);

printf("the result is:%f", re);return 0;

}

编译生成目标文件:

gcc -c testddot.c -o testddot.o

生成可执行文件:

gcc -o testddot  testddot.o -lblas -lgfortran

得到结果:

the result is:4.000000

注意到:blas库是用gfortran写的,因此需要用到gfortran库来生成可执行文件,且需要链接blas库的路径,由于我把blas库放在了系统默认路径下,因此这里只需要-lblas即可,否则,需要写出blas库的路径。

2.下面讲下lapack库的调用方法,这里以求解线性方程组为例子。

#include #include"lapacke.h"

#define M 2

#define N 2

intmain()

{int i, j, n=N, m=M;intinfo, IPIV[N];double A[M * N]= { 1, 2, 4, 2};double B[M*N] = {5, 4, 2.5, 2};

dgesv_(&n, &n, A, &n, IPIV, B, &n, &info);for(j=0; j< 2*N ;j++)

printf("%f", B[j]);

printf("");return 0;

}

编译生成目标文件:

gcc -o test_dgesv.o -c test_dgesv.c

生成可执行文件:

gcc -o test_dgesv test_dgesv.o -llapack -lblas -lm -lgfortran

运行程序:

./test_dgesv

结果如下:

1.000000 1.000000 0.500000 0.500000

注意:blas和lapack中的代码都是基于fortran来写的,fortran中的矩阵是按列存储,而C语言中的矩阵是按行存储的。编程序的时候一定要记住这点

linux环境下c语言调用lapack,linux系统下C语言调用lapack ,blas库相关推荐

  1. Linux环境搭建 | 手把手教你安装Linux虚拟机

    2019独角兽企业重金招聘Python工程师标准>>> 前言 作为一名Linux工程师,不管是运维.应用.驱动方向,在工作中肯定会需要Linux环境.想要获得Linux环境,一个办法 ...

  2. Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行——怎么将Unix/Mac系统下的文件转换到Windows系统下

    先交代一下遇到的问题: 本人用的是Windows系统.在学习Triangle Mesh时,想将bunny.ply等经典的PLY文件导入程序中. 但是,文件被读入程序后,所有的内容变成了一行.从而,现成 ...

  3. linux环境用opencv读取图片,基于Linux下OpenCV的人脸识别模块设计

    金笑雪 张琳琳 高丹 张黎 摘 要: 近年来,图像识别技术正在向更加直观.可靠的方向发展,其中人脸识别技术具有极高的研究价值,应用得也最为广泛.通过对Linux系统下OpenCV的研究,利用OpenC ...

  4. linux修改容器内的mysql端口_Linux系统下修改phpstudy集成环境中的MySQL端口号的步骤...

    这篇文章给大家介绍的内容是关于Linux系统下修改phpstudy集成环境中的MySQL端口号的步骤 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 首先需要安装好phpstu ...

  5. windows下安装cygwin以及SeismicUnix在cygwin下的安装(windows下安装linux环境,非虚拟机、非双系统)

    一直想在我的笔记本上装个linux,之前装过win10和Ubuntu双系统,后来觉得卡,就重装了一个单Ubuntu系统,在重复的装软件,各种软件(办公.学习.编程),就连微软的office都已经让我安 ...

  6. linux环境对apk文件写入数据,Linux下7zip命令apk中插入文件标识渠道批量打包

    项目需要:需要对某个包分包,对渠道和下面的包做标记,但又不改变原包的签名,想到在原apk中插入某个带渠道号和包号的文件,服务器Linux环境,采用7zip 压缩格式解压,打包,插入文件到apk解压后的 ...

  7. linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)

    运维 - linux(ubuntu) 环境变量管理 (持续更新) 注: 本教程以 Ubuntu16.04 操作, 请细看. 如果看完还不明白, 联系我, 我给你发红包. 一, 查看环境变量: 方法 1 ...

  8. Linux环境搭建 | 手把手教你配置Linux虚拟机

    在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度. Ubuntu刚安装完毕之后,还无法进行开发 ...

  9. linux上pyenv卸载,在Ubuntu 18.04系统下安装pyenv的方法

    本文介绍在Ubuntu 18.04操作系统下安装pyenv的方法,使用它可以进行Python多版本管理,目的是防止不同的Python版本因为不兼容而出现错误.安装pyenv其实非常的简单,只需要在系统 ...

  10. python 升级setuptools_yum安装setuptools linux环境python安装setuptools的必要条件 - Linux - 服务器之家...

    yum安装setuptools linux环境python安装setuptools的必要条件 发布时间:2017-04-03 来源:服务器之家 linux环境python安装setuptools(使用 ...

最新文章

  1. mysql转换double_MySQL 字符串转in/double类型——CAST/CONVERT函数的用法
  2. jtable根据内容自动调整列宽
  3. homebrew可以管理众多开源软件的安装和卸载
  4. MapReduce算法–二级排序
  5. chmod命令详解使用格式和方法
  6. 怎样提高学生计算机应用能力,能力学生论文,关于如何提高技校生计算机的应用能力相关参考文献资料-免费论文范文...
  7. Linux——进程管理简单学习笔记(二)
  8. Eclipse的PHP插件PHPEclipse安装和使用
  9. 如何使用iMovie对抖动视频进行防抖处理?
  10. R语言在大气污染数据分析中的应用-时间序列分析(一)
  11. android java_Android开发和JAVA开发有什么区别?
  12. pyhook3安装教程及与之相关的一些问题的解决方法
  13. [4G5G基础学习]:L3 RRC层概述与总体架构、ASN.1消息、无线承载SRB, DRB、终端三种状态、MIB, SIB,NAS消息类型
  14. Web3.0技术栈简介
  15. ChatGPT飙升苹果商店榜首,每周订阅需7.99美元,结果是个假的???
  16. STM32前言知识总结
  17. 非阻塞模式下 SEND 和 RECV 函数的返回值总结
  18. iOS开发技术-实验一-简易计算器实现
  19. 基于浏览器的交互式Go学习平台 | Gopher Daily (2020.11.14) ʕ◔ϖ◔ʔ
  20. 一分钟明白什么是“编程”,再也不会被程序员笑话了

热门文章

  1. 百度编辑器导入word插件,支持带图片文档导入
  2. 全干货!百度AI快车道艾尼专场成都站开启报名
  3. 3DES(CBC)算法破解
  4. Kali Linux渗透测试 142 Mestasploit 基本使用
  5. linux 查看目录下文件、查看文件具体内容、查看文件夹大小
  6. Fortran 双冒号的作用
  7. HTTP 以及 HTTPS (对称加密和非对称加密的综合使用) 知识点总结归纳
  8. android fstab文件,[Android6.0][RK3399] fstab 文件格式说明和解析代码跟踪
  9. springmvc - 重定向与转发的区别
  10. 移动应用性能测试剖析以及PerfDog与其他工具的对比分析11.22