我改变了'bison -v -d ...`到`bison -d ...```codeblocks`中的`makefile`但它出错了

时间:2017-07-18 16:22:55

标签: visual-studio makefile codeblocks

我将bison -v -d ...更改为bison -d ... makefile中的codeblocks。但是在编译时没有任何内容发生更改并显示错误。 使用Code :: Block 16.01所以我收到此错误:

   -------------- Build: Debug in testB (compiler: GNU GCC Compiler)---------------

 bison -v -d C:\Users\admin\Downloads\Compressed\f90toC\f90toC\f90.y -o C:\Users\admin\Downloads\Compressed\f90toC\f90toC/f90.parser.cc
Execution of 'bison -v -d C:\Users\admin\Downloads\Compressed\f90toC\f90toC\f90.y -o C:\Users\admin\Downloads\Compressed\f90toC\f90toC/f90.parser.cc' in 'D:\testB\testB' failed.

 -------------- Run: Debug in testB (compiler: GNU GCC Compiler)---------------

 Checking for existence: D:\testB\testB\bin\Debug\testB.exe

我的Makefile就在这里:

CC = gcc  -ggdb
OBJ = f90main.o f90decl.o f90arg.o f90.tab.o lex.yy.o symb.o ptree.o \
      f90mod.o f90print.o

.c.o:
    $(CC) -c $<

all: f90

lex.yy.c:  f90.lex
    flex -i f90.lex

f90.tab.c: f90.y f90.h
    bison -d f90.y

f90: $(OBJ) f90.h
    $(CC) -o ff90 $(OBJ)

why:
    bison -d -v f90.y
clean:
    -rm *.o lex.yy.c f90.tab.c f90.tab.h f90.output

F = f90toC
tar:
    tar -cvf f90toC-test.tar $(F)/f90.lex $(F)/f90.y $(F)/*.h $(F)/*.c $(F)/tests $(F)/doc $(F)/Makefile $(F)/README $(F)/File_index

bak:
    cp *.c backup
    cp *.h backup
    cp *.y backup
    cp *.lex backup
    cp Makefile backup

CodeBlocks snapshot 1

你也可以参考want to compile product Fortran to c 所以任何人都可以帮助我。

我可以在visual studio 2015中构建我的项目吗? https://msdn.microsoft.com/en-us/library/txcwa2xx.aspx 是兼容的makefile项目吗?

此致

1 个答案:

答案 0 :(得分:0)

我按照

中的说明解决了我的问题

How to compile LEX/YACC files on Windows?

并使用此项目

http://www.ncsa.illinois.edu/People/mdewing/f90toC/

并在命令提示符下创建项目。不  Visual Studio 2015环境所以我使用ff90.exe将fortran .f90文件编译成.c文件作为提到的指令。但是ff90.exe并不是很强大并且在这样的测试中会出错。这与开发人员有关