armadillo 库加入项目中程序卡死不运行的问题

之前使用armadillo库一直正常,不知到从什么时候起,含有armadillo库的程序一运行就卡死,就是卡着不动,即使程序在main函数中直接return 0;也是卡死,灰常奇怪。而别人编译相同的程序一点问题都没有。vs2008和vs2010都试了,windows 7系统,即使是它的example程序也是相同的状况,调试也是卡死,真是让人郁闷。更让人费解的是,我把编译好的程序给别人是可以运行的!好吧,我不想重装系统。

后来尝试把blas_win32_MT.lib和lapack_win32_MT.lib库从项目中去掉,程序可以运行了,但是出现http://www.cnblogs.com/dabaopku/archive/2011/03/26/1996066.html 这个错误;这很正常,毕竟armadillo仅仅是一个壳,很多计算还是要交给lapack来做;可是我加了lapack后就出现上述卡死症状。lapack会和什么程序有冲突呢?真是奇了怪了。

无奈,我尝试去寻找lapack的source。有个 lapack for windows(http://icl.cs.utk.edu/lapack-for-windows/),居然要用intel compiler和mpi编译,算了,还是下载预编译好的东西吧。下载下来 blas.lib,libf2c.lib,lapack.lib,加到项目中就ok了。

坑爹的!

现在的编译时,预处理器还是需要ARMA_USE_LAPACK和ARMA_USE_BLAS,链接时附加依赖项是libf2c.lib,lapack.lib,blas.lib。当然也可以下载debug版本的,但编译时总是报pdb调试信息文件找不到的warning,甚是烦人,干脆用release版吧。

good luck!

原文地址:https://www.cnblogs.com/dabaopku/p/2114373.html