Oop 如何使用ifort链接包含类的Fortran库
我试图确定链接静态库时收到错误的原因,该库具有包含类型绑定过程的类 在命令行上编译和链接时: 这可以工作(并且生成的可执行文件可以正常运行) ifort src/main.F90 C:\Temp\lib\test.lib/include:“C:\Temp\mod”$(Opts)/link$(Lnk) 但这是行不通的 ifort src/main.F90/include:“C:\Temp\mod”$(Opts)/link/LIBPATH:“C:\Temp\lib\test.lib”$(Lnk) 如果您能就后一个命令不起作用的原因提出建议,我将不胜感激。它是我用来链接典型库的命令行格式。后一个命令下面的链接错误涉及test.lib中包含的Fortran类定义的类型绑定过程 (请注意,iPort和链接器版本包含在下面。平台是Windows 7,在上述两种情况下,我都使用make via MinGW)Oop 如何使用ifort链接包含类的Fortran库,oop,linker,fortran,intel-fortran,fortran2003,Oop,Linker,Fortran,Intel Fortran,Fortran2003,我试图确定链接静态库时收到错误的原因,该库具有包含类型绑定过程的类 在命令行上编译和链接时: 这可以工作(并且生成的可执行文件可以正常运行) ifort src/main.F90 C:\Temp\lib\test.lib/include:“C:\Temp\mod”$(Opts)/link$(Lnk) 但这是行不通的 ifort src/main.F90/include:“C:\Temp\mod”$(Opts)/link/LIBPATH:“C:\Temp\lib\test.lib”$(Lnk) 如
/LIBPATH链接器选项指定要在其中搜索库的目录。第二个命令似乎正在使用它来指定库文件本身
从命令行中删除
/LIBPATH:
选项前缀,或从目录搜索规范中拆分库名称-/LIBPATH:“C:\Temp\lib”。。。。。test.lib
我知道这是件简单而愚蠢的事情。非常感谢。
ifort src/main.F90 /include:"C:\Temp\mod" /fpe:0 /real_size:64 /integer_size:64 /names:lowercase /iface:cref /iface:mixed_str_len_arg /assume:byterecl /extend_source:132 /O3 /traceback /INCREMENTAL:NO /link /LIBPATH:"C:\Temp\lib\test.lib" /STACK:100000000 /MAP /MANIFEST /NODEFAULTLIB:msvcrt.lib
Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 12.0.4.196 Build 20110427
Copyright (C) 1985-2011 Intel Corporation. All rights reserved.
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
-out:main.exe
-subsystem:console
-incremental:no
/LIBPATH:C:\Temp\lib\test.lib
/STACK:100000000
/MAP
/MANIFEST
/NODEFAULTLIB:msvcrt.lib
main.obj
main.obj : error LNK2019: unresolved external symbol test_module_mp_setsegmentvalue_8 referenced in function MAIN__
main.obj : error LNK2019: unresolved external symbol test_module_mp_getsegmentvalue referenced in function MAIN__
main.obj : error LNK2001: unresolved external symbol test_module_mp_setsegmentvalue_4
main.exe : fatal error LNK1120: 3 unresolved externals
make: *** [main] Error 1120
makefile:7: recipe for target `main' failed