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!