将SCIP与现有项目联系起来

时间:2016-09-05 10:16:11

标签: c++ eclipse scip

我一直在尝试在个人项目中使用SCIP。我设法编译scipoptsuite-3.2.1罚款(即使结果文件夹在我的下载文件夹中,因为我是一个懒汉),但我似乎无法使它工作。

我在Eclipse CDT上工作,我可以很好地链接标题,功能被识别但我在所有地方都有未定义的引用。当我尝试链接scip的库(libscip.a)时,我有以下错误:

/usr/bin/ld: /home/myusername/Downloads/scipoptsuite-3.2.1/scip-3.2.1/lib/libscip.a(fileio.o): undefined reference to symbol 'gzdopen'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Segmentation_2D] Error 1

为了解决这个问题,我添加了命令-lz但是..这也不起作用。

  • 如果我这样链接:-lscip -lz - >编译开始进入无限循环
  • 如果我这样链接:-lz -lscip - > DOS缺失
  • 如果我这样链接:-lz -lscip -lz - >编译开始进入无限循环

我只是不知道下一步该尝试什么,我们将不胜感激。

由于

编辑 -

我现在使用标志ZLIB = false,READLINE = false和ZIMPL = false重新安装。我还使用命令INSTALLDIR =“”来正确地将库,标题和二进制文件放在我的系统中(我必须编辑Makefile来执行此操作,因为它最初将链接到../thePath,其中path =“/ usr / local “,例如)。

然而,它仍然无效。我认为是一个无限循环实际上是一个大量的错误(13.000+)似乎是每个函数的未解决的调用。 (我现在只用-lscip编译。)

我现在能做什么?

1 个答案:

答案 0 :(得分:0)

不幸的是,libscip不是您应用程序的正确库。您应该在SCIP Optimization Suite的libscipopt目录中使用lib/(运行make scipoptlib)。

libscip仅包含纯SCIP代码,只能与

一起使用
  • liblpi{spx,cpx,...}拥有LP解算器
  • libnlpi拥有NLP解算器
  • libobjscip用于C ++支持

libscipopt应该将所有这些库合并为一个以便于使用。