【发布时间】:2016-09-05 10:16:10
【问题描述】:
我一直在尝试在个人项目中使用 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,使用 thePath="/usr/local ",例如)。
但是,它仍然不起作用。我认为的无限循环实际上是大量错误(13.000+),似乎是每个函数的未解决调用。 (我现在只用 -lscip 编译)。
我现在能做什么?
【问题讨论】: