Metis:libmetis.a消失了,重新安装创建了libmetis.so而不是

时间:2015-12-03 17:42:21

标签: cmake shared-libraries static-libraries metis

事实

我在运行Ubuntu 12.04 LTS的桌面上安装了 metis 5.1.0

最近我编译了一个并行配置的软件,找不到文件/opt/metis/metis-5.1.0/lib/ libmetis.a 并引发致命错误。

这对我来说很奇怪,因为早期版本的相同软件和现有的metis安装都很好。

libmetis.a消失

我有证据表明已经安装了 libmetis.a ,来自第一个metis安装的stderr + stout文件。 例如,从make install的输出中的某处我可以看到:

/usr/bin/cmake -P cmake_install.cmake -- Install configuration: "" -- Installing: /opt/metis/metis-5.1.0/include/metis.h -- Installing: /opt/metis/metis-5.1.0/lib/libmetis.a -- Installing: /opt/metis/metis-5.1.0/bin/gpmetis

因此,某些操作必须在某些时候删除libmetis.a。 我没有回忆或知道哪个行动可以做到这一点。

重新安装metis

然后我通过运行我第一次使用的相同脚本重新安装了相同版本的metis。程序是

sudo make uninstall sudo make clean sudo make config prefix=/opt/metis/metis-5.1.0 shared=1 cc=gcc gdb=1 debug=1 sudo make sudo make install

stdout + sterr中的相应行已改变

/usr/local/bin/cmake -P cmake_install.cmake -- Install configuration: "" -- Installing: /opt/metis/metis-5.1.0/include/metis.h -- Installing: /opt/metis/metis-5.1.0/lib/libmetis.so -- Installing: /opt/metis/metis-5.1.0/bin/gpmetis

比较

  • cmake 生活在另一条道路上。我不记得这个的原因。我确认当前cmake已安装在/ usr / local / bin / cmake中,并且/ usr / bin / cmake不再存在。无论哪种方式,cmake的版本自从(我相信)以来一直是3.3.1。
  • 安装
  • libmetis.so 而不是 libmetis.a
  • 逐行比较make install的新旧stderr + stdout,我看到cmake已经在第一次安装中进行了大量工作。不幸的是,我已经覆盖了第一次安装的文件,无法提供更多细节。

摘要

总结我所说的变化是

  • 静态库 libmetis.a 消失了(盲点为什么/如何/何时)
  • cmake 被取代(盲目为什么/如何/何时)
  • myis的copycat安装导致共享对象库 libmetis.so 而不是libmetis.a,可能是在使用了不同的cmake之后。我怀疑地在config命令中查看shared=1,但是曾经使用脚本来打算忠实地重复所有操作。 (虽然并非总是正确编码正确的意图。)

目标是再次按照并行软件的要求将libmetis.a文件放在适当的位置。

解决此问题的任何建议提示和智慧?提前感谢您的思考。

0 个答案:

没有答案