У меня есть два файла source1.f90
а также main.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'
Как мне исправить эту проблему, чтобы моя программа компилировалась?
Вообще говоря, вам не хватает настроек среды смешанного программирования в Visual Studio. Просто перейдите по этой ссылке, предоставленной Intel:
https://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications.
Или, короче говоря, добавьте каталог компилятора fortran и каталог библиотеки во вкладке конфигурации проекта. В моем случае каталог компилятора 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».
Других решений пока нет …