Среда IDE NetBeans (сборка 201804200002) "Сборка не выполнена" - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь изучить Фортран, используя IDE NetBeans с базовым программным приложением «Hello World».Тем не менее, я продолжаю получать "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 build / Debug / MinGW-Windows / main.o build / Debug / 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 \ Documentsjects Net\ 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: error: 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

BUILD FAILED (выходное значение2, общее время: 1 с)

Я не понимаю, как это исправить?Буду признателен за любую помощь, поскольку я новичок в мире Fortran / C ++.

1 Ответ

0 голосов
/ 04 января 2019

Я проследовал видеоурок, на который вы ссылались в своем комментарии, и получил те же ошибки сборки.Для их устранения необходимы два несвязанных изменения:

  • Чтобы устранить ошибку multiple definition of 'main', см. Принятый ответ на вопрос переполнения стека gfortran множественное определение основного .Просто скопируйте и вставьте исходный код примеров C ++ и Fortran в файлы вашего проекта.

    Перестройте проект, и ошибка multiple definition of 'main' должна исчезнуть.

  • Однако,это не исправляет ошибки undefined reference.Решение для этого находится на (старом) веб-сайте NetBeans :

    Итак, в окне компоновщика мы добавляем ссылку на библиотеку Фортрана, вызывая библиотекиВ первом окне на этой странице появится кнопка «Добавить параметры». Здесь мы добавили опцию -lgfortran в разделе «Другие параметры».Presto, код C будет компилироваться и не будет жаловаться на отсутствующие ссылки на Фортран.

Для исправления ошибок undefined reference необходимы следующие шаги:

  • В окне Проекты выберите свой проект, щелкните правой кнопкой мыши и выберите Свойства в контекстном меню, чтобы открыть окно Свойства проекта .
  • Выберите Build> Linker из списка Categories .
  • В правой части окна Project Properties нажмите кнопку ...для Библиотеки .
  • В окне Отладка - Библиотеки нажмите кнопку Добавить параметр ... .
  • В Выберите опцию окно:
    • Нажмите радиокнопку Other Option.
    • Введите -lgfortran в текстовое поле и нажмите OK .
  • Нажмите кнопку ОК, чтобы закрыть окно Отладка - Библиотеки .Теперь вы должны увидеть параметр -lgfortran , отображаемый в окне Свойства проекта :

    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)
...