首页 > 解决方案 > 在 Fortran powerstation 中获取错误未解决的外部符号 _GET_COMMAND_ARGUMENT@12、GETARG@12

问题描述

我尝试使用 Fortran 的 get_command_argument 属性。但是在运行构建功能时,Microsoft developer studio 显示以下错误。我是 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/passing-command-line-arguments

标签: fortrangfortranfortran90intel-fortran

解决方案


根据标题和对“Developer Studio”的引用,我怀疑您正在尝试使用 Microsoft Powerstation Fortran。如果是这样,该编译器(最后一次发布于 1990 年代中期)不支持 GET_COMMAND_ARGUMENT 或 COMMAND_ARGUMENT_COUNT 内部过程。这些内在过程在 Fortran 标准的 2003 年修订版中指定。


推荐阅读