我一直在尝试在个人项目中使用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但是..这也不起作用。
我只是不知道下一步该尝试什么,我们将不胜感激。
由于
编辑 -
我现在使用标志ZLIB = false,READLINE = false和ZIMPL = false重新安装。我还使用命令INSTALLDIR =“”来正确地将库,标题和二进制文件放在我的系统中(我必须编辑Makefile来执行此操作,因为它最初将链接到../thePath,其中path =“/ usr / local “,例如)。
然而,它仍然无效。我认为是一个无限循环实际上是一个大量的错误(13.000+)似乎是每个函数的未解决的调用。 (我现在只用-lscip编译。)
我现在能做什么?
答案 0 :(得分:0)
不幸的是,libscip
不是您应用程序的正确库。您应该在SCIP Optimization Suite的libscipopt
目录中使用lib/
(运行make scipoptlib
)。
libscip
仅包含纯SCIP代码,只能与
liblpi{spx,cpx,...}
拥有LP解算器libnlpi
拥有NLP解算器libobjscip
用于C ++支持 libscipopt
应该将所有这些库合并为一个以便于使用。