2017-08-26 26 views
1

我想爲可滿足性問題的Minisat解決方案安裝綁定,以獲得有關Hackage的可用性問題here在從Hackage下載Haskell綁定到c庫時指定gcc編譯器標誌

當我試圖在Linux的工作站上的命令行做cabal install minisat-solver,我得到了下面的輸出

[email protected]: $ cabal install minisat-solver 
Resolving dependencies... 
Configuring minisat-solver-0.1... 
Building minisat-solver-0.1... 
Failed to install minisat-solver-0.1 
Build log (/home/gaurish/.cabal/logs/minisat-solver-0.1.log): 
cabal: Entering directory '/tmp/cabal-tmp-6317/minisat-solver-0.1' 
Configuring minisat-solver-0.1... 
Building minisat-solver-0.1... 
Preprocessing library minisat-solver-0.1... 
[1 of 7] Compiling SAT.MiniSat.Literals (SAT/MiniSat/Literals.hs, dist/build/SAT/MiniSat/Literals.o) 
[2 of 7] Compiling SAT.MiniSat.LowLevel (SAT/MiniSat/LowLevel.hs, dist/build/SAT/MiniSat/LowLevel.o) 
[3 of 7] Compiling SAT.MiniSat.Monadic (SAT/MiniSat/Monadic.hs, dist/build/SAT/MiniSat/Monadic.o) 
[4 of 7] Compiling SAT.MiniSat.Functional (SAT/MiniSat/Functional.hs, dist/build/SAT/MiniSat/Functional.o) 
[5 of 7] Compiling SAT.MiniSat.Variable (SAT/MiniSat/Variable.hs, dist/build/SAT/MiniSat/Variable.o) 
[6 of 7] Compiling SAT.MiniSat.Formula (SAT/MiniSat/Formula.hs, dist/build/SAT/MiniSat/Formula.o) 
[7 of 7] Compiling SAT.MiniSat  (SAT/MiniSat.hs, dist/build/SAT/MiniSat.o) 
c-sources/solver.c: In function ‘solver_simplification’: 

c-sources/solver.c:901:3: 
    error: ‘for’ loop initial declarations are only allowed in C99 mode 
     for (int i = solver_dlevel(s); i >= 0; i--) { 
    ^

c-sources/solver.c:901:3: 
    note: use option -std=c99 or -std=gnu99 to compile your code 

c-sources/solver.c:907:3: 
    error: ‘for’ loop initial declarations are only allowed in C99 mode 
     for (int c = s->qtail - 1; c >= 0; c--) { 
    ^

很顯然,我需要告訴陰謀告訴GCC使用ANSI-C99模式,而編譯嵌入式C源。換句話說就是將-std = c99傳遞給gcc編譯器。

我該怎麼做?

回答

1

--gcc-option可能會訣竅。

它也是here發現爲--prog-option其中PROG是已知的陰謀(如GCC)的任何程序

另一種選擇是下載包,然後自己修改它的構建配置。