什么是未定义的参考/未解决的外部符号错误?什么是常见原因以及如何修复/预防它们?
随意编辑/添加您自己的.
c++ c++-faq linker-errors unresolved-external undefined-reference
我在看起来像这样的模块中有一个函数(以防有人感兴趣,就是这个函数)
MODULE MYMODULE
IMPLICIT NONE
! Some random stuff
CONTAINS
CHARACTER*255 FUNCTION strtok ( source_string, delimiters )
[...]
END FUNCTION strtok
SUBROUTINE DO_SOMETHING ( )
CHARACTER(LEN=255) :: strtok
[...] !
END SUBROUTINE DO_SOMETHING
END MODULE MYMODULE
Run Code Online (Sandbox Code Playgroud)
该strtok函数是C的字符串标记器的一个版本,我将在DO_SOMETHING子例程中使用此函数。我需要定义strtok,否则gfortran抱怨它未定义。但是,如果我这样做了,然后编译我的代码并将其链接到主程序,则链接器会抱怨未定义对的引用strtok_。我不知道为什么会这样,因为它们都在同一个模块中并且应该可见。同一模块中的其他函数和子例程不存在此问题。这与返回字符*的功能有关吗?