windows上安装nlopt库/使用lib /def:... 命令

部分转自@老王家的编程小白的文章非线性约束优化数值库Nlopt在vs2013、2015中配置

nlopt库

C/C++上类似MATLAB中fmincon的一个非线性优化库,据说求解效果很不错。

步骤

1. 在nlopt官网上下载

http://ab-initio.mit.edu/wiki/index.php/NLopt_on_Windows

1

【注意:由于后来在vs环境下是用win32平台编译的,所以要下载32bit版本;如果你在vs环境下是用X64平台编译,则下载64bit版本;一定要注意这里不是根据电脑的版本或安装vs的版本来选择,否则后面调试会出现如下问题】

会发现里面有提示:

This .zip archive contains DLL libraries and the associated header (.h)
and module-definition (.def) files of NLopt compiled for Win64.

In order to link to this .dll files from Visual C++, you need to
create a .lib “import libraries” for it, and can do so with the “lib”
command that comes with VC++. In particular, run:
lib /def:libnlopt-0.def

大概是要使用VC的命令 lib /def:libnlopt-0.def

2. 在开始菜单里点击vs编译器工具

根据自己下载的32或64位版本,选择命令工具。

2

3. 输入你所下载的dll32文件夹的路径)

例如
cd F:\nonlinearoptimal\nlopt-2.4.2-dll32

这里写图片描述

输入:lib /def:libnlopt-0.def
运行完成之后,就会在该dll32文件夹内生成.lib文件

3

4. 打开vs2015,新建一个空项目,然后对其项目属性进行配置,方法如同【在vs中配置第三方库】

这里写图片描述

这里写图片描述

这里写图片描述
要想调用该库时,将dll32文件下的头文件.h/.hpp也加入到该项目中

这里写图片描述

5. 最后将dll32文件下的.dll文件复制到你所安装的vs2013或vs2015的目录下,找到vc文件夹下的bin文件夹。【以vs2015为例,vs2013安装文件则是12.0】

这里写图片描述

然后对示例程序进行编译即可成功。
【示例程序以及说明文档已上传到CSDN】
http://download.csdn.net/download/dshl9595/9933443


BTW: 关于库的路径的修改,可以直接使用相对路径,具体做法:

例如你的工程文件(test.vcproj)所在目录路径为:

F:\MyPro\lib\test

该工程中包含的源文件要包含一个头文件,该头文件所在路径如下:

F:\MyPro\bin

则我们可以从工程文件test.vcproj所在目录为起点向上回退到包含你所需要头文件的include文件夹所在的目录目录,你回退了几次就需要几个”..”符号。

这里的相对路径设置如下:

..\..\bin

猜你喜欢

转载自blog.csdn.net/qq_37043191/article/details/78473386
def