Получение ошибки неразрешенного внешнего символа _GET_COMMAND_ARGUMENT@12 , GETARG@12 в электростанции Fortran

Я попытался использовать свойство get_command_argument Fortran. Но при запуске функции сборки студия разработчиков Microsoft отображает следующие ошибки. Я новичок в Fortran, я использовал примеры из ссылок ниже. Помогите мне, пожалуйста. Спасибо

Example 1. 
PROGRAM test_get_command_argument
INTEGER :: i
CHARACTER(len=32) :: arg
i = 0
DO
CALL get_command_argument(i, arg)
IF (LEN_TRIM(arg) == 0) EXIT
WRITE (*,*) TRIM(arg)
i = i+1
END DO
END PROGRAM

--------------------Configuration: Text1 - Win32 Debug--------------------
Linking...
Text1.obj : error LNK2001: unresolved external symbol _GET_COMMAND_ARGUMENT@12
Text1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Text1.exe - 2 error(s), 0 warning(s)




Example 2. 
PROGRAM cmdlnsum
IMPLICIT NONE
CHARACTER(100) :: num1char
CHARACTER(100) :: num2char
REAL :: num1
REAL :: num2
REAL :: numsum

!First, make sure the right number of inputs have been provided
IF(COMMAND_ARGUMENT_COUNT().NE.2)THEN
  WRITE(*,*)'ERROR, TWO COMMAND-LINE ARGUMENTS REQUIRED, STOPPING'
  STOP
ENDIF

CALL GET_COMMAND_ARGUMENT(1,num1char)   !first, read in the two values
CALL GET_COMMAND_ARGUMENT(2,num2char)

READ(num1char,*)num1                    !then, convert them to REALs
READ(num2char,*)num2

numsum=num1+num2                        !sum numbers
WRITE(*,*)numsum                        !write out value

END PROGRAM

Linking...
fortran_program.obj : error LNK2001: unresolved external symbol _GET_COMMAND_ARGUMENT@12
fortran_program.obj : error LNK2001: unresolved external symbol _COMMAND_ARGUMENT_COUNT@0
fortran_program.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
fortran_program.exe - 3 error(s), 0 warning(s)

Реализация вызова подпрограммы getarg https://gcc.gnu.org/onlinedocs/gfortran/GET_005fCOMMAND_005fARGUMENT.html https://riptutorial.com/fortran/example/26615/аргументы-передачи-командной-строки


person Shriji Sharma    schedule 21.04.2020    source источник
comment
Какой компилятор и его версию вы используете? Ожидаете ли вы, что он будет поддерживать эту часть Fortran 2003?   -  person francescalus    schedule 22.04.2020


Ответы (1)


Основываясь на названии и ссылке на «Студию разработчика», я подозреваю, что вы пытаетесь использовать Microsoft Powerstation Fortran. Если да, то этот компилятор, последний раз выпущенный в середине 1990-х, не поддерживает встроенные процедуры GET_COMMAND_ARGUMENT или COMMAND_ARGUMENT_COUNT. Эти встроенные процедуры указаны в версии 2003 года стандарта Fortran.

person IanH    schedule 22.04.2020