gpt4 book ai didi

c - ar : crs: no such file or directory

转载 作者:行者123 更新时间:2023-11-30 15:31:09 25 4
gpt4 key购买 nike

我正在尝试安装 SCIP 优化套件版本 3.1.0

http://scip.zib.de/download.php?fname=scipoptsuite-3.1.0.tgz

通过在 scipoptsuite-3.1.0 目录中键入“make”命令来编译该软件。该软件包包含三个组成软件包(SCIP、soplex 和 zimpl)。有一个用于通用包 (scipoptsuite) 的 makefile,也有一个用于三个组成包的 makefile。我在编译 zimpl 时遇到了很大的困难。

尝试使用 zimpl makefile 中的代码进行编译时会发生错误。尝试生成库并在该库中存储目标文件。

我现在将提供一些与该问题相关的代码。

以下是一些关键定义:

AR      =   ar cr
ARFLAGS =
RANLIB = ranlib


LIBBASE = blkmem.o bound.o code.o conname.o define.o elem.o entry.o \
hash.o heap.o idxset.o inst.o iread.o list.o \
load.o local.o metaio.o mmlparse2.o mmlscan.o mono.o \
mshell.o prog.o random.o rdefpar.o source.o \
setempty.o setpseudo.o setlist.o setrange.o setprod.o \
setmulti.o set4.o stmt.o stkchk.o strstore2.o symbol.o \
term2.o tuple.o vinst.o zimpllib.o
LIBDIR = lib
LIBRARY = $(LIBDIR)/lib$(LIBNAME).a
LIBNAME = $(NAME)-$(VERSION).$(BASE)

OBJDIR = obj/O.$(OSTYPE).$(ARCH).$(COMP).$(LINK).$(OPT)
LIBOBJ = $(LIBBASE) gmpmisc.o numbgmp.o
LIBXXX = $(addprefix $(OBJDIR)/,$(LIBOBJ))

这是导致错误的关键代码段:

$(LIBRARY): $(OBJDIR) $(LIBDIR) $(LIBXXX) 
@echo "-> generating library $@"
-rm -f $(LIBRARY)
$(AR) $@ $(LIBXXX) $(ARFLAGS)
$(RANLIB) $@

这会生成以下错误消息:

** Building ZIMPL library "mypath/scipoptsuite-3.1.0/zimpl-3.3.2/lib/libzimpl.linux.arm.gnu.opt.a".
make[2]: Entering directory `mypath/scipoptsuite-3.1.0/zimpl-3.3.2'
-> generating library lib/libzimpl-3.3.2.linux.arm.gnu.opt.a
ar: crs: No such file or directory
make[2]: *** [lib/libzimpl-3.3.2.linux.arm.gnu.opt.a] Error 1
make[2]: Leaving directory `mypath/scipoptsuite-3.1.0/zimpl-3.3.2'
make[1]: *** [mypath/scipoptsuite-3.1.0/zimpl-3.3.2/lib/libzimpl.linux.arm.gnu.opt.a] Error 2
make[1]: Leaving directory `mypath/scipoptsuite-3.1.0'
make: *** [scipbinary] Error 2

我特别想提请您注意该代码段中的以下行:

ar: crs: No such file or directory

我不太确定该行的“crs”方面指的是什么,甚至不确定为什么会生成任何错误。任何有关此事的帮助将不胜感激。我现在真的很困惑。

最佳答案

更改:

AR      =   ar cr
ARFLAGS =

致:

ARFLAGS += cs

还有:

$(AR) $@ $(LIBXXX) $(ARFLAGS)

致:

$(AR) $(ARFLAGS) $@ $(LIBXXX)
<小时/>

ar 将像这样调用( man ar(1) ):

ar [--plugin name] [-X32_64] [-]p[mod [relpos] [count]] [--target bfdname] archive [member...]

因此,如果没有像 -crs 这样标记,它的标志就不能出现在命令行的末尾。

另外,make已经为你定义了$(AR)$(ARFLAGS),不需要你指定它再次。

$ make -p | grep "^AR"
AR = ar
ARFLAGS = rv

关于c - ar : crs: no such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com