使用lp_solve和visual studio 2015

时间:2017-10-09 05:47:13

标签: c++ visual-studio-2015 lpsolve

我对C ++很陌生。我正在尝试使用VS2015和lp_solve库(https://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.5/)来解决我的线性均衡问题(对于精确的Gromov-Hausdorrf距离,请参阅https://mediatum.ub.tum.de/doc/1231885/1231885.pdf第3.1和3.3节)。我的机器是x64系统。这就是我所做的:

  • 下载lp_solve_5.5.2.5_dev_win64.zip包并解压缩。
  • 特定库directoy(通过项目 - >属性 - >链接器)
  • 我使用的特定lib(liblpsolve55.lib和liblpsolve55d.lib用于静态链接)通过project-> properties-> linker-> input->附加依赖。
  • 声明.h文件目录(通过project-> properties-> C / C ++)。
  • 以下是我在代码中声明的内容:

    #include "lp_lib.h"

    #pragma comment(lib, "liblpsolve55.lib") // static

    #pragma comment(lib, "liblpsolve55d.lib") // static for debug

当我使用x86运行代码时,它将显示以下问题:

  • 错误LNK2019:未解析的外部符号_make_lp @ 8在函数中引用“void __cdecl my_solve [共13个错误,如此]
  • 警告LNK4272:库机器类型'X86'与目标机器类型'x64'冲突[共2次警告]

当我用x64切换跑步者时:

  • 我有550个错误,主要是因为“dlfcn.h”:没有这样的文件或目录
  • 在lp_lib.h文件中的
  • ,它有一行:

    #if (LoadInverseLib == TRUE) || (LoadLanguageLib == TRUE)
      #ifdef WIN32
        #include <windows.h>
      #else
        #include <dlfcn.h>
      #endif
    #endif
    
  • 这意味着它将我视为linux机器,因为dlfcn.h用于unix / linux

我也尝试使用32位版本的软件包(lp_solve_5.5.2.5_dev_win32.zip),但它也不起作用。

  • 与x86亚军:__ iob,_printf问题。
  • 使用x64 runner:“dlfcn.h”:没有这样的文件或目录

我已经在我的mac中使用相应的包(lp_solve_5.5.2.5_dev_osx32.tar.gz)连续构建和运行演示。 但我仍然想知道如何在VS2015中构建和运行它。

在这里,我将说明我在mac中做了什么,如果有人需要它(使用Xcode)。

  • 下载lp_solve_5.5.2.5_dev_osx32.tar.gz软件包
  • 在构建阶段添加所有.h文件 - &gt;头
  • 在构建阶段添加liblpsolve55.a文件 - &gt;链接二进制文件库
  • (如果你想使用.dylib作为动态链接,将它添加到构建阶段 - &gt;复制文件,但它对我不起作用)
  • 在构建设置中,将架构设置为32位intel
  • 在构建设置中,将仅构建活动架构设置为否

非常感谢,实际上没有人回答这个问题:)但我自己也解决了这个问题。以下是我为VS2015所做的事情:

  • 使用包lp_solve_5.5.2.5_dev_win32.zip

  • 如上所述添加.h文件和.lib

  • 通过属性更改运行库 - &gt; C / C ++ - &gt;代码生成 - &gt;运行库 - &gt;将DLL(/ MDd)更改为(/ MTd)

  • 如果您仍然遇到一些问题,请转到属性 - &gt;链接器 - &gt;输入 - &gt;附加依赖项,并添加:legacy_stdio_definitions.lib

那没关系。我是翻译问题,是的,我使用中文版VS ...

0 个答案:

没有答案