美文网首页
编译和使用lapack-3.8.0

编译和使用lapack-3.8.0

作者: 不想当社畜 | 来源:发表于2018-04-21 10:25 被阅读0次

    使用lapack中遇到的问题

    一. 编译lapack-3.8.0

    使用cmake-gui编译程序,当需要使用c和c++接口时,需要在cmake中打开使用c和c++接口的操作。随后生成makefile文件。(在执行cmake时,默认是使用动态链接库的方式编译库文件)执行:

    # make (编译库)
    # make install (将编译好的链接库进行安装 默认默认是安装在/usr/local/lib64 可以指定安装的路径) 
    

    二. 使用官网的c++例子程序

    1. 使用官网提示的简单的例子编译(c++的程序)
    # g++ m.cc -llapacke (后面表示使用c接口的链接库 具体-l参数什么命令也不太清楚)
    

    能生成可执行文件 ./a.out 当执行可执行文件时,提示有错误
    使用动态链接库(程序运行时,去找链接库)编译程序 运行程序发现有错误
    错误如下:

    error while loading shared libraries:.... (表示找不到链接库)
    

    原因分析: 链接器ld提示找不到库文件。由于ld默认的目录是/lib和/usr/lib,当如果链接放在其他路径时,需要提前让ld知道库文件所在的路径。

    1. 解决方法:

    方法1.

    # vim /etc/ld.so.conf //在新的一行中加入库文件所在的路径(/usr/local/lib64)
    #ldconfig  //更新/etc/ld.so.cache文件
    

    方法2.

    1.将用户的库文件统一放到一个文件目录下,eg /usr/local/lib64
    
    2.向库配置文件中,写一个用户库文件所在的目录
    # sudo vim /etc/ld.so.conf.d/usr-libs.conf (usr-libs.conf 这个文件时新建的 )
    在文件中加入用户库文件多在的路径
    # ldconfig   //更新/etc/ld.so.cache文件
    

    由于我使用第二种方法,存在的问题是,当我电脑关机后,需要重新更新文件,即执行:

    # ldconfig
    

    三 认识

    主要是对c++链接过程中当需要链接库时,编译的执行步骤不熟悉,需要更进一步的学习和了解。

    相关文章

      网友评论

          本文标题:编译和使用lapack-3.8.0

          本文链接:https://www.haomeiwen.com/subject/veotlftx.html