Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verknüpfe ich Fortran- und C-Binärdateien mithilfe von GCC: Eine Anleitung zur Behebung undefinierter Referenzfehler?

Wie verknüpfe ich Fortran- und C-Binärdateien mithilfe von GCC: Eine Anleitung zur Behebung undefinierter Referenzfehler?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 03:49:29762Durchsuche

How to Link Fortran and C   Binaries Using GCC: A Guide to Resolving Undefined Reference Errors?

Verknüpfen von Fortran- und C-Binärdateien mithilfe von GCC

Das Verknüpfen von Projekten, die sowohl Fortran- als auch C-Code verwenden, kann aufgrund der Inkompatibilitäten zwischen den zugehörigen eine Herausforderung sein Bibliotheken. Beim Versuch, solche Projekte mit g oder gfortran zu kompilieren und zu verknüpfen, treten häufig undefinierte Referenzfehler auf.

Bedenken Sie beispielsweise den folgenden Code:

<code class="fortran">subroutine print_hi() bind(C)
  implicit none
  write(*,*) "Hello from Fortran."
end subroutine print_hi</code>
<code class="cpp">#include <iostream>

extern "C" void print_hi(void);

using namespace std;

int main() {
  print_hi();
  cout << "Hello from C++" << endl;
  return 0;
}</code>

Kompilieren dieser Dateien mit g oder gfortran erzeugt separat Objektdateien, aber das Verknüpfen dieser mithilfe von g führt zu undefinierten Verweisen auf Fortran-Bibliotheken. Ebenso führt die Verwendung von gfortran zu undefinierten Verweisen auf C-Bibliotheken.

Um dieses Problem zu beheben, ist es notwendig, während der Verknüpfungsphase die entsprechenden Bibliotheken einzubinden. Für g kann dies durch Hinzufügen des Flags -lgfortran zum Link-Befehl erreicht werden:

g++ main.o print_hi.o -o main -lgfortran

Dieses Flag verknüpft die erforderlichen Fortran-Bibliotheken. Alternativ kann gfortran mit dem Flag -lstdc verwendet werden, um die erforderlichen C-Bibliotheken zu verknüpfen:

gfortran main.o print_hi.o -o main -lstdc++

Durch Angabe der entsprechenden Verknüpfungsflags können Programmierer erfolgreich Projekte verknüpfen, die Fortran und C-Code kombinieren, was ihnen dies ermöglicht Nutzen Sie die Fähigkeiten beider Sprachen in ihren Anwendungen.

Das obige ist der detaillierte Inhalt vonWie verknüpfe ich Fortran- und C-Binärdateien mithilfe von GCC: Eine Anleitung zur Behebung undefinierter Referenzfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn