Ошибка Linux C++: неопределенная ссылка на 'e_wsfe()'

Я пытаюсь построить решение для LINUX, которое использует код, который был конвертирован из Fortran, и использует файл f2c. Я установил libf2c2-dev и скомпилировал файл f2c.h с помощью -lf2c -lm, а затем связал это с остальной частью решения. Когда я компилирую все вместе с g++, он бросает неопределенную ссылку на 'e_wsfe()' и любой другой 'extern (type) foo()', который определен в файле f2c.h. Например...

extern integer e_wdue(void);
extern integer e_wsfe(void);
extern integer e_wsfi(void);
extern integer e_wsle(void);
extern integer e_wsli(void);
extern integer e_wsue(void);

компоновщик обеспечивает следующее...

trffca.o:trffca.cpp:(.text+0x25e5): more undefined references to `do_fio(long, char*, long)' follow
trffca.o: In function `trffca_(int*, int*, int*, float*, float*, float*, float*, float*, int*, float*, float*, float*, float*, float*, float*, float*, float*, float*, float*, float*)':
trffca.cpp:(.text+0x25ea): undefined reference to `e_wsfe()'
trffca.cpp:(.text+0x2632): undefined reference to `s_wsfe(cilist*)'
trffca.cpp:(.text+0x2637): undefined reference to `e_wsfe()'
trffca.cpp:(.text+0x29e4): undefined reference to `s_wsfe(cilist*)'

Файл f2c содержит все определения для объектов, на которые он генерирует неопределенные ссылочные ошибки, и этот код скомпилирован и выполнен без изменений в окнах. Что я должен сделать, чтобы компилятор распознал эти определения в файле f2c.h? Любая помощь будет принята с благодарностью, я чувствую себя комфортно с C++, но материал f2c бросает рывок во всем.

0 ответов

Другие вопросы по тегам