我一直在尝试在Linux下编译和安装SCIP,但在编译过程结束时出现以下错误....
** Build complete.
** Find your SCIP binary in "/home/carloserwin/Documents/scipoptsuite-4.0.0/scip-4.0.0/bin".
** Enter "make test" to solve a number of easy instances in order to verify that SCIP runs correctly.
make[2]: Leaving directory '/home/carloserwin/Documents/scipoptsuite-4.0.0'
make[1]: Leaving directory '/home/carloserwin/Documents/scipoptsuite-4.0.0'
make[1]: Entering directory '/home/carloserwin/Documents/scipoptsuite-4.0.0'
ar: /home/carloserwin/Documents/scipoptsuite-4.0.0/zimpl-3.3.4/obj/O.linux.x86.gnu.shared.opt/blkmem.o: No such file or directory
make[1]: *** [Makefile.doit:238: scipoptlib] Error 1
make[1]: Leaving directory '/home/carloserwin/Documents/scipoptsuite-4.0.0'
make: *** [Makefile:98: scipoptlib] Error 2
当我写“make test”时,几乎每个测试都失败了。在Linux上多次尝试没有成功之后,我尝试在Mac中编译并且它工作得很完美,所有测试都没问题。但我需要让它在Linux上运行。
gcc版本是7-2.1 OS Linux openSUSE Tumbleweed,KDE 5.10.3 32位
答案 0 :(得分:1)
似乎scipoptlib makefile使用错误的目录来查找zimpl对象。在内部开发版本中似乎有一些修复,也许它会有所帮助:
diff --git a/Makefile.doit b/Makefile.doit
index 344f0ee..1d8077e 100644
--- a/Makefile.doit
+++ b/Makefile.doit
@@ -65,7 +65,7 @@ ZIMPLOBJECTS = blkmem.o bound.o code.o conname.o define.o elem.o entry.
ifeq ($(ZIMPL),true)
-SCIPOPTOBJFILES += $(addprefix $(ZIMPLDIR)/obj/O.$(OSTYPE).$(ARCH).$(COMP).shared.$(ZIMPLOPT)/,$(ZIMPLOBJECTS))
+SCIPOPTOBJFILES += $(addprefix $(ZIMPLDIR)/obj/O.$(OSTYPE).$(ARCH).$(COMP).$(LIBTYPE).$(ZIMPLOPT)/,$(ZIMPLOBJECTS))
endif
ifeq ($(LIBBUILD),$(LINKCC))