Я пытаюсь выполнить тестовую сборку какого-то старого кода (отсюда и старого компилятора).Мне нужно связать файлы C и F, но я получаю следующую ошибку
ошибка LNK2001: неразрешенный внешний символ _flow
для каждого упоминания файла C вКод FНиже приведен пример того, как f-файлы ссылаются на файлы C.
INTERFACE
SUBROUTINE flow (from, to, when, howmuch)
!MS$ATTRIBUTES C, ALIAS:'_flow' :: flow
REAL from
REAL to
REAL when
REAL howmuch
END SUBROUTINE flow
END INTERFACE
Я изо всех сил пытаюсь найти какие-либо предложения для используемого мной компилятора, но я подозреваю, что код в порядке (я уверен,модель была построена из этого кода ранее) и что-то не так с тем, что я делаю - мне интересно, если у меня нет соответствующих библиотек, чтобы сообщить компилятору, что я пытаюсь связать с C?Я попытался загрузить fortran.h
и добавить это в файл моего проекта, но это не помогло, и когда я добавил
include 'fortran.h'
в соответствующие файлы f, это вызвало синтаксические ошибки.
вот также файл fortran.h
, который я использую
// Определения для вызова FORTRAN 77 из C ++
typedef int INTEGER; // INTEGER 4 bytes
typedef float REAL; // REAL 4 bytes
typedef double DOUBLE_PRECISION; // DOUBLE PRECISION 8 bytes
typedef int LOGICAL; // LOGICAL 4 bytes
#include <f77char.h> // character n bytes
#include <f77cmplx.h> // complex
#include <f77matrx.h> // fmatrix class
// values for LOGICAL
#define FALSE 0
#define TRUE 1
// Macros for portable handling of linkage and calling conventions
//#ifdef F77_STUB_REQUIRED
// Typically, this branch is for Unix computers
// C++ stub functions:
#define SUBROUTINE inline void
#define INTEGER_FUNCTION inline INTEGER
#define REAL_FUNCTION inline REAL
#define LOGICAL_FUNCTION inline LOGICAL
#define DOUBLE_PRECISION_FUNCTION inline DOUBLE_PRECISION
// FORTRAN functions
#define SUBROUTINE_F77 extern "C" void
#define INTEGER_FUNCTION_F77 extern "C" int
#define REAL_FUNCTION_F77 extern "C" float
#define LOGICAL_FUNCTION_F77 extern "C" int
#define DOUBLE_PRECISION_FUNCTION_F77 extern "C" double
//#endif
// Array indexing differences between C++ and fortran
//#define B(i) b[i-1]
Спасибо за чтение - очень признателен за помощь, и дайте мне знать, если больше информациибыло бы полезно!