linux编译时出错 usrbinld:cannot find libmkl_solver_lp64.a

linux编译时出错 usrbinld:cannot find libmkl_solver_lp64.a,第1张

犯了几个错误。

1、编译程序你用root账号干嘛?

2、PATH是用来指定可执行程序的位置,你把库文件位置放进去,指望这个静态库直接执行么?

3、export和source只需要一条就可以了。

解决方法:echo "/home/power/mkllib" >/etc/ld.so.conf.d/mkllib.confldconfig

从截图上看,编译过程中找到了libmkl_solver_lp64.a,但由于兼容性问题被忽略了,我想这才是你需要努力的方向。

第一步:./configure --sysconfdir=/etc --with-named-curses-libs=/usr/lib/libncursesw.so.5(这步应该这样写就不会出现你上面这个问题了)

第二步:make

第三步:make install

编译不成功多半软件功能开关设置及依赖关系不支持。首先要了解编译的过程,真正了解了编译的过程后就可以比较轻松的编译各种软件了。

1、configure,可以在configure 执行一下./configure --help来大致了解一下该软件的一些开关和支持的性能,然后根据使用需要来设置需要开启的性能和需要关闭的性能,以及需要哪些支持库等等,然后再指定一下编译路径,做完这一切后,满屏幕的check ....就开始了,这就是configrue的过程,和所做的事情

2、make,其实这一步才是真正的编辑步骤,而configure只是做一个环境的check,检查系统环境及lib是不是对上一步所开启的参数支持,只有check不出错,也就是configure不出错,就可以比较顺利的进行编译也就是make

3、make install 安装,当成功编译后就可以通过make install进行安装了,安装完成后就可以使用了。

比较容易报错的地方就是configure这一步,因为这一步会检查软件及在configure这一步的设置开关功能中需要的依赖关系,并对现行系统进行检查,尤其是最小化安装的系统,报错会比较多,可根据具体报错内容来安装相应的安装包来完成软件的依赖,直到check全部通过。有些软件在make时也需要调用一些库,具体要看软件的reademe来了解具体编译要求。如果再不行,就只能网上寻求帮助了。

另外,编译也是一个经验活,只编译得多了,对一些常见的错误就会比较了解了,必定软件依赖的库常见的就那几个,建议每编译一款软件做一个小笔记,把处理的错误或遇到的情况记录下来,这样以后再编译时,会事半功倍!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7386568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存