#json #visual-studio-code #fortran #mingw #gfortran
#json #visual-studio-code #fortran #mingw #гфортран
Вопрос:
Я хотел бы скомпилировать и запустить подпрограммы fortran с использованием кода Visual Studio.
Когда я пытаюсь отладить код, я получаю сообщение об ошибке, в котором указано, что «задача предварительного запуска ‘gfortran’ завершилась с кодом выхода 1«, со следующим консольным сообщением:
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup 0xa0): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
The terminal process "C:MinGWbingfortran.exe '-g', 'D:......params.f95', '-o', 'D:.......params.exe'" terminated with exit code: 1.
Когда я нажимаю «показать ошибки», он говорит, что «пока никаких проблем в worskpace обнаружено не было»
Мои конфигурации файлов json для папки следующие: Launch.json
{
"version": "2.0.0",
"configurations": [
{
"name": "Fortran Launch (GDB)",
"type": "cppdbg",
"request": "launch",
"targetArchitecture": "x86",
"program": "${workspaceRoot}\${fileBasenameNoExtension}.exe",
"miDebuggerPath": "gdb.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceRoot}",
"externalConsole": true,
"preLaunchTask": "gfortran"
}
]
}
tasks.json
{
"version": "2.0.0",
"command": "gfortran",
"args": [
"-g",
"${file}",
"-o",
"${workspaceRoot}\${fileBasenameNoExtension}.exe"
]
}
Я перепробовал многие исправления, найденные в Интернете, такие как изменение настройки по умолчанию для сохранения файла перед запуском, переустановка gfortran и т. Д., Но безрезультатно. Когда я пытаюсь выполнить компиляцию из командной строки, у меня нет никаких ошибок, но когда я использую флаг -g, у меня появляется та же ошибка о «неопределенной ссылке на WinMain @ 16«. Кроме того, у меня нет проблем с использованием настроек для запуска одного кода fortran (без подпрограмм).
У меня архитектура Windows-32, и я использовал MinGW для установки gfortran. Я установил системную переменную среды ‘Path’ для включения этой папки.
Я надеюсь, что проблема ясна, пожалуйста, помогите мне с этим.
Комментарии:
1. Действительно ли ваш код Fortran содержит a
program
? Вы не показываете свой код. Вы пишете, что хотите «запускать подпрограммы fortran» , но вы не можете управлять подпрограммами, вам нужна программа. У нас есть другие вопросы и ответы по этому поводу.2. У меня есть программа a.f95, которая включает в себя две подпрограммы (модули) — params.f95 для объявления параметров и subroutes.f95 для определения подпрограмм
3. Все программы, написанные полностью на Fortran, должны иметь один и только один программный модуль, обычно разделяемый «Program» и «End Program». Это вызывает другие модули в программе в требуемом порядке. У вас есть такой модуль? В противном случае вы, как правило, получаете ошибку, аналогичную той, о которой вы сообщаете, что для меня указывает либо на то, что у вас нет программного модуля, либо он у вас есть, но ваша система сборки его не находит.
4. Да, у меня есть это… моим программным модулем является .f95, и он вызывает параметры и подпрограммы модулей. У меня нет проблем с запуском кода с использованием компилятора FTN95 от SilverFrost. Но я хочу использовать gfortran для включения приложений OpenMP
5. Я могу компилировать и выполнять из командной строки, используя флаги -c и -o. Но у меня такая же ошибка, когда я использую флаг -g для отладки.