0

Mac でグルコース SAT ソルバーをコンパイルすると、グルコース 3.0 のコンパイル時に次のコンパイル時エラーが発生します。これらのエラーを回避するにはどうすればよいですか?

~/acl2/glucose-3.0/simp$ make
Making dependencies
Compiling: /Users/me/acl2/glucose-3.0/simp/Main.o
In file included from /Users/me/acl2/glucose-3.0/simp/Main.cc:39:
In file included from /Users/me/acl2/glucose-3.0/simp/../core/Dimacs.h:27:
/Users/me/acl2/glucose-3.0/simp/../core/SolverTypes.h:58:16: error:
      friend declaration specifying a default argument must be a definition
    friend Lit mkLit(Var var, bool sign = false);
               ^
<snip>                                                                       
6 errors generated.
make: *** [/Users/me/acl2/glucose-3.0/simp/Main.o] Error 1
~/acl2/glucose-3.0/simp$
4

1 に答える 1

1

このソリューションについては、Marijn Heule の功績によるものです。

次の変更に対応するために、グルコース ソース コードを変更します。

bash$ diff SolverTypes.h
~/Downloads/glucose-3.0/core/SolverTypes.h
58c58
<     // friend Lit mkLit(Var var, bool sign = false);
---
>     friend Lit mkLit(Var var, bool sign = false);
66c66
< inline  Lit  mkLit     (Var var, bool sign = false) { Lit p; p.x =
var + var + (int)sign; return p; }
---
> inline  Lit  mkLit     (Var var, bool sign) { Lit p; p.x = var + var + (int)sign; return p; }

上 (<) は Mac バージョンで、下 (>) はデフォルトのソースです。

于 2015-09-08T21:06:45.190 に答える