NetBeans IDE开发(内部版本201804200002)“构建失败”

时间:2019-01-03 17:04:21

标签: gcc netbeans build fortran

我正在尝试使用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 ++世界的初学者,我将不胜感激。

2 个答案:

答案 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错误所需的具体步骤是:

  • Projects 窗口中选择您的项目,右键单击并从上下文菜单中选择 Properties ,以打开 Project Properties 窗口。
  • li>
  • 类别列表中选择构建>链接器
  • 项目属性窗口的右侧,单击...按钮。
  • 调试-库窗口中,单击添加选项... 按钮。
  • 选择选项窗口中:
    • 单击Other Option单选按钮。
    • 在文本字段中输入 -lgfortran ,然后按确定
  • 单击“确定”关闭“调试-库” 窗口。您现在应该看到 -lgfortran 选项显示在 Project Properties 窗口中:

    linkerSettings

进行了上述更改,项目构建无误:

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,您就很好了:-)