首页 文章

将SCIP与现有项目联系起来

提问于
浏览
0

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

我在Eclipse CDT上工作,我可以很好地链接 Headers ,函数被识别但我在所有地方都有未定义的引用 . 当我尝试链接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 =“”来正确地将库, Headers 和二进制文件放在我的系统中(我必须编辑Makefile来执行此操作,因为它最初将链接到../thePath,其中path =“/ usr / local “, 例如) .

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

我现在能做什么 ?

1 回答

  • 0

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

    libscip 仅包含纯SCIP代码,只能与之一起使用

    • liblpi{spx,cpx,...} 有一个LP解算器

    • libnlpi 有一个NLP求解器

    • libobjscip 获取C支持

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

相关问题