如何解决Visual Studio 2015编译CFortranTranslator时的系列报错
问题依次解决步骤
1 解决Bison执行报错(MSB3721 退出码1)
- 打开cmd命令提示符,执行如下命令切换到对应目录:
cd C:\Users\pc\source\repos\CFortranTranslator\src\grammar\
- 手动执行Bison生成命令,查看具体错误信息:
win_bison.exe --output="for90.tab.cpp" --defines="for90.tab.h" "for90.y"
根据cmd输出的错误做对应处理,常见解决方向:
- 若提示缺少运行库,安装对应版本的Visual C++ 可再发行组件包
- 若提示语法错误,更换和项目匹配版本的win_flex_bison工具,推荐使用2.5.x系列的稳定版本
- 给
src\grammar目录添加当前Windows用户的完全控制权限,避免权限不足导致生成文件失败
2 解决Boost头文件找不到报错
- 右键Visual Studio中的
CFortranTranslator项目,选择「属性」 - 顶部切换到你当前使用的编译配置:Debug x64
- 依次选择「配置属性」->「VC++目录」,在「包含目录」项中新增你本地Boost库的根目录(比如你Boost解压在
D:\boost_1_78_0,就填入该路径,需保证路径下存在boost/optional/optional.hpp文件) - 点击「应用」保存配置即可,若后续出现Boost相关链接错误,再在「库目录」中添加Boost编译后的库文件夹路径。
3 解决for90.tab.cpp找不到报错
这个报错是因为之前Bison执行失败,没有生成对应的语法解析文件,按如下步骤处理:
- 先确认Bison问题已经完全解决,手动执行完Bison命令后,
src\grammar目录下已经存在for90.tab.cpp和for90.tab.h两个文件 - 右键项目选择「清理」,清理之前的编译缓存
- 重新执行全量重编译即可,若仍提示路径不存在,检查项目中
for90.tab.cpp的引用路径,修改为实际生成的文件路径即可。
内容的提问来源于stack exchange,提问作者user366312
相关产品推荐
相关产品推荐

