在Ubuntu 20.04上更新Armadillo

问题描述

我目前在装有Ubuntu 20.04的计算机上安装了Armadillo 9.900.4。我已经下载了10.1.0并运行了cmake .sudo make install,当我重新编译代码并运行它时,它说它是用9.900.4编译的。我做错什么了吗?有没有办法完全删除犰狳并重新安装?

谢谢

解决方法

这是使用make install安装某些东西的缺点。它会绕过您的发行版软件包管理器,然后您必须手动清理/升级已安装的内容。库install的实际作用还取决于库的创建者。

某些库还创建了一个“卸载”目标,以使卸载更加容易。我不知道armadillo是否这样做,但是您可以尝试从编译的文件夹中运行make uninstall并运行make install命令进行检查。

在任何情况下,Linux都有安装库和头文件的标准目录。通常,install的目标是将适当的文件复制到这些文件夹中。然后,您需要做的就是手动删除这些文件。尝试在/usr/include文件夹中查找标头,在/usr/lib文件夹中查找已编译的库(名称随发行版的不同而有所不同)。

如果找不到它们,则可以使用locate程序。只需在外壳中运行locate armadillo。我不确定它是否已经安装在ubuntu中。


您也可能只将armadillo用作仅标头的库,而无需在系统中“安装”。在这种情况下,您需要将程序与BLAS实现以及Lapack链接。实际上,当编译armadillo时,它所做的就是创建一个可以与BLAS和Lapack链接并且已经与之链接的“包装器库”(大多数armadillo代码是模板代码)。


TLDR;

/usr/include(或类似名称)中搜索犰狳读者并将其删除。在/usr/lib(或类似名称)中搜索已编译的犰狳库并将其删除。