AR:CRS:そのようなファイルまたはディレクトリはありません

StackOverflow https://stackoverflow.com//questions/25036228

  •  21-12-2019
  •  | 
  •  

質問

SCIP最適化スイートバージョン3.1.0

をインストールしようとしています

http://scip.zib.de/download。 PHP?FNAME= SCIPOPTSUITE-3.1.0.TGZ

SCIPOPTSUITE-3.1.0ディレクトリの 'make'コマンドを入力してソフトウェアをコンパイルします。パッケージには3つの構成パッケージ(SCIP、SOPLEX、およびZIMPL)があります。一般的なパッケージ(Scipoptsuite)および3つの構成パッケージのためのメイクファイルのためのメイクファイルがあります。私はZimplの編集になると大きな困難があります。

ZIMPLメイクファイル内のコードを使用してコンパイルしようとしたときにエラーが発生します。ライブラリを生成し、そのライブラリ内のオブジェクトファイルを格納するための試みがあります。

私は現在、いくつかの関連コードを問題に提供するつもりです。

これはいくつかの重要な定義です:

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 =   
.

to:

ARFLAGS += cs
.

と:

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

to:

$(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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top