我正在尝试使用NetBeans IDE和基本的“ Hello World”编程应用程序来学习Fortran。但是,我不断收到“ Build Failed”。不知道为什么我已经安装了MinGW。然后,我在环境变量中配置了PATH。最后,我安装了NetBeans。这是我在NetBeans中编写的:
PRINT*, 'Hello World'
END
以下是我得到的错误和历史记录:
cd'C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1'
C:\ MinGW \ msys \ 1.0 \ bin \ make.exe -f Makefile CONF = Debug
“ / C / MinGW / msys / 1.0 / bin / make.exe” -f nbproject / Makefile-Debug.mk QMAKE = SUBPROJECTS = .build-conf
make.exe [1]:进入目录 `/ c / Users / ABCD / Documents / NetBeansProjects / CppApplication_1'
“ / C / MinGW / msys / 1.0 / bin / make.exe” -f nbproject / Makefile-Debug.mk dist / Debug / MinGW-Windows / cppapplication_1.exe
make.exe [2]:进入目录 `/ c / Users / ABCD / Documents / NetBeansProjects / CppApplication_1'
mkdir -p build / Debug / MinGW-Windows
gfortran -c -g -o build / Debug / MinGW-Windows / testfortran.o testfortran.f90
mkdir -p dist / Debug / MinGW-Windows
g ++ -o dist / Debug / MinGW-Windows / cppapplication_1 构建/调试/MinGW-Windows/main.o 构建/调试/MinGW-Windows/testfortran.o
build / Debug / MinGW-Windows / testfortran.o:在“ main”函数中:
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:2: “ main”的多种定义
build / Debug / MinGW-Windows / main.o:C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / main.cpp:21: 首先在这里定义
build / Debug / MinGW-Windows / testfortran.o:在“ MAIN__”函数中:
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:1: 未定义对“ _gfortran_st_write”的引用
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:1: 未定义对“ _gfortran_transfer_character_write”的引用
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:1: 未定义对'_gfortran_st_write_done'的引用
build / Debug / MinGW-Windows / testfortran.o:在“ main”函数中:
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:2: 未定义对`_gfortran_set_args'的引用
C:\ Users \ ABCD \ Documents \ NetBeansProjects \ CppApplication_1 / testfortran.f90:2: 对“ _gfortran_set_options”的未定义引用
collect2.exe:错误:ld返回1个退出状态
make.exe [2]:*** [dist / Debug / MinGW-Windows / cppapplication_1.exe]错误 1
make.exe [2]:离开目录 `/ c / Users / ABCD / Documents / NetBeansProjects / CppApplication_1'
make.exe [1]:*** [.build-conf]错误2
make.exe [1]:离开目录 `/ c / Users / ABCD / Documents / NetBeansProjects / CppApplication_1'
make.exe”:*** [.build-impl]错误2
建立失败(退出值2,总时间:1秒)
我不知道该如何解决?作为Fortran / C ++世界的初学者,我将不胜感激。
答案 0 :(得分:1)
我遵循了您在评论中链接到的视频教程,并且遇到了相同的构建错误。需要解决两个不相关的更改:
要解决multiple definition of 'main'
错误,请参阅接受的关于堆栈溢出问题gfortran multiple definition of main的答案。只需将C ++和Fortran示例的源代码复制并粘贴到您的项目文件中即可。
重建您的项目,multiple definition of 'main'
错误应该消失了。
但是,这不能解决undefined reference
错误。解决方案在(旧)NetBeans web site上:
因此,在链接器窗口中,当我们添加对Fortran的引用时 通过打开“库”窗口可以看到一个库 此页面上的“选项”按钮...。这里是放置-lgfortran的位置 其他选项下的选项。 Presto,C代码将编译并 不会抱怨缺少Fortran参考。
修复undefined reference
错误所需的具体步骤是:
...
按钮。Other Option
单选按钮。单击“确定”关闭“调试-库” 窗口。您现在应该看到 -lgfortran 选项显示在 Project Properties 窗口中:
进行了上述更改,项目构建无误:
cd 'D:\NB82\CppApplication_5'
C:\msys\1.0\bin\make.exe -f Makefile CONF=Debug clean
"/C/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
make.exe[1]: Entering directory `/d/NB82/CppApplication_5'
rm -f -r build/Debug
rm -f *.mod
make.exe[1]: Leaving directory `/d/NB82/CppApplication_5'
CLEAN SUCCESSFUL (total time: 558ms)
cd 'D:\NB82\CppApplication_5'
C:\msys\1.0\bin\make.exe -f Makefile CONF=Debug
"/C/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/d/NB82/CppApplication_5'
"/C/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_5.exe
make.exe[2]: Entering directory `/d/NB82/CppApplication_5'
mkdir -p build/Debug/MinGW-Windows
rm -f "build/Debug/MinGW-Windows/main.o.d"
g++ -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.cpp
mkdir -p build/Debug/MinGW-Windows
gfortran -c -g -Wall -o build/Debug/MinGW-Windows/newfortranFreeFormatFile.o newfortranFreeFormatFile.f90
mkdir -p dist/Debug/MinGW-Windows
g++ -o dist/Debug/MinGW-Windows/cppapplication_5 build/Debug/MinGW-Windows/main.o build/Debug/MinGW-Windows/newfortranFreeFormatFile.o -lgfortran
make.exe[2]: Leaving directory `/d/NB82/CppApplication_5'
make.exe[1]: Leaving directory `/d/NB82/CppApplication_5'
BUILD SUCCESSFUL (total time: 1s)
运行Fortran项目,然后产生预期的输出:
main in C++
FortMain
RUN SUCCESSFUL (total time: 2s)
答案 1 :(得分:0)
您创建了一个C ++项目,然后创建了一个fortran文件。 您的IDE为您创建了c ++主程序。我想您没有看到本教程中的内容。 如果我看对了,那么答案很简单:
只需右键单击并删除此main.c,您就很好了:-)