Получение ошибки неразрешенного внешнего символа _GET_COMMAND_ARGUMENT@12, GETARG@12 в электростанции Фортрана - PullRequest
0 голосов
/ 22 апреля 2020

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

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/passing-command-line-arguments

1 Ответ

1 голос
/ 23 апреля 2020

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

...