将MS C ++与Intel Fortran链接时发生致命错误LNK1104(找不到.lib文件)

时间:2015-09-23 21:41:05

标签: c++ visual-studio fortran intel-fortran

我有两个文件source1.f90main.cpp。 Fortran文件有一个子例程,cpp文件有一个调用Fortran子例程的程序

我使用以下命令行选项编译了Fortran文件和构建的静态库文件

ifort source1.f90 /nologo /debug:full /Od /gen-interfaces /warn:interfaces /traceback /check:bounds /libs:static /threads /dbglibs /c

lib /out:lib1.lib source1.obj

但是当我使用

编译cpp文件时
CL main.cpp /link LIB1.LIB

我收到以下错误

D:\temp>CL main.cpp /EHsc /link LIB1.LIB
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.60610.1 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

main.cpp
Microsoft (R) Incremental Linker Version 11.00.60610.1
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:main.exe
LIB1.LIB
main.obj
LINK : fatal error LNK1104: cannot open file 'ifmodintr.lib'

如何修复此问题以便我的程序编译?

1 个答案:

答案 0 :(得分:1)

一般来说,您错过了Visual Studio中混合编程环境的设置。只需按照intel提供的链接: https://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications

或者简而言之,在项目配置选项卡中添加fortran编译器include目录和库目录。在我的例子中,fortran编译器目录是“g:\ Program Files(x86)\ IntelSWTools \ compilers_and_libraries \ windows \ compiler \ include \ intel64”,库目录是“g:\ Program Files(x86)\ IntelSWTools \ compilers_and_libraries \ Windows \编译\ lib中\ intel64_win”。