使用dlib中,发现错误:
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol dgesvd_ referenced in function "long __cdecl dlib::lapack::binding::gesvd(char,char,long,long,double *,long,double *,double *,long,double *,long,double *,long)" (?gesvd@binding@lapack@dlib@@YAJDDJJPEANJ00J0J0J@Z) Dlib D:\c++\Dlib\Dlib\faceDetect.obj 1
需要加载lpack库,从 http://www.netlib.org/lapack/ 下载源码准备编译时, CMAKE报错:
于是准备安装fortran编译器。
MinGW下有gfortran编译器,但是不适合在VS下运行,主流的编译器是IVF,具体安装介绍如下:
原文地址:http://fcode.cn/guide-30-1.html
第一,配置 IVF + VS 之前的准备工作
首先应该了解,IVF 和 VS 分别是什么?他们在我们的使用过程中,各自发挥什么作用?
IVF 是 Intel Visual Fortran 的简称,是一款主流的 Fortran 编译器。windows 上的占有率很高,linux 下的表现能力也不错。
VS 是 Visual Studio 的简称,它是微软公司开发的一款开发平台,内含多种微软出品的编译器产品,比如 VC++,VB.NET,等等。除此之外,它还具有一个开放的集成开发环境(IDE),而我们在使用时,基本只是借用它的 IDE 进行工程管理和操作环境。
在另一个FAQ系列介绍中,介绍了一款比较商业化的编译器产品,应当包含(或其中几部分):编译器,链接器,调试器,编辑器,函数库,集成开发环境(IDE)及其他。
在 IVF+VS 这个组合中,编译器,调试器,函数库是 IVF 的组成部分。而链接器,编辑器,集成开发环境(IDE)是属于 VS 的。另外我们也需要VS提供的VC++运行库
IVF | 编译器 | 是IVF的核心,具有32位,64位的差异 |
调试器 | 是IVF的重要组成部分,具有32位,64位的差异 | |
函数库 | IVF的函数库以 MKL 为主,具有32位,64位的差异 | |
VS | 链接器 | 免费产品,也被包含在IVF中 |
编辑器 | 书写代码的部分。高版本的VS提供了Fortran的折叠和自动完成功能 | |
集成开发环境 | 是我们主要借助的部分,实际上是 nmake 工程管理的可视化版本 | |
VC++运行库和开发库 | IVF虽然是Fortran的编译器,但实现过程使用了不少VC++提供的运行时库,因此,我们需要它。 |
第二,VS 是不是必须的?安装IVF必须安装VS吗?
根据上面的说法,只有IVF的部分才是必须的。我们可以使用命令行和make/nmake来管理工程,这样就不需要集成开发环境了。链接器是免费的,也包含在IVF中。编辑器,我们可以使用记事本(notepad),UltraEdit,Notepad++ 等等文本编辑器来代替。
至于 VC++运行库和开发库,微软发布有单独的版本,可以直接使用。所以,VS并不是必须的。只不过,单独配置这些,需要程序员有一定的基础知识,而且在很多时候IDE确实方便一些,因此,我们建议初学者还是安装IVF+VS更容易上手。在熟练之后,可了解命令行编译或集成到第三方环境中。
第三,我应该安装什么版本的 IVF 和 什么版本的 VS ?
理论上来说,版本越高的 IVF 越好,可以支持更多的新语法,优化效果也做得更好。VS 也是一样的。
但是要注意的是,不是所有版本的 IVF 都可以嵌入到所有版本的 VS 里。选购或获取时,应确保两者能够集成。
目前必须要 IVF XE 2013 SP1 update 1 (或以上)才能集成到 VS2013 中,如果您不确定自己手上的版本能集成到哪些版本的 VS 里,可以插入光盘(或iso虚拟光驱镜像),找到光盘目录:\installs\1033 下面,查看类似下面的文件夹:
可知,当前版本可集成到 VS2008,2010,2012,2013当中。其他版本的不再支持,包括更早的VS2005。
至于该选用32位,还是64位,要取决于你的计算机环境。最重要的是操作系统的位数。有条件的朋友,如果你的操作系统是64位的,可以安装64位的IVF。
关于VS的语言版本,我建议使用英文原版的,在中文的VS里,使用IVF的项目向导可能会有点问题(这不严重)
第四,安装 VS 和 IVF 的问题?
安装的顺序一般是:先 VS,后 IVF。安装过程难度不大,需要注意几点:
1. 尽管IVF和VS都支持中文路径,但我们依然建议把它们安装在简单的英文路径下。
2. VS 安装时,如果你不做其他的工作,可以只安装 VC++ 一个组件。其他组件均不安装。
3. 安装 IVF 时,一般都会勾选 integration to Visual Studio 的组件。只要不特意取消,都会安装的。
4. 如果安装时,让你确认是否修改环境变量(envionment variables )请选择 Yes。
5. 安装过程最好暂时关闭杀毒软件。
如果你使用的是 win7,但使用了更早版本的 IVF,可能会出现 “reading license” 的时候卡死。这是因为 IVF 的许可读取了你的 CPU 的编号,而在 win7 中这需要更高的权限。所以,早期版本的 IVF 安装时候就无法读取lincense,请换用更新版本的 IVF 安装。
在 VS 和 IVF 都安装好以后,请打开 VS ,选择帮助(Help)菜单,关于(about)选项,检查是否存在 IVF 的版本信息了。
然后在文件(File),新建(New),项目(Project)菜单里查看,是否已经有了 Intel Visual Fortran 的工程类型。
如果一切都正常的话,你就可以开始使用 IVF 和 VS 了