Heim > Backend-Entwicklung > C++ > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-27 03:49:29
Original
760 Leute haben es durchsucht

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>
Nach dem Login kopieren
<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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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++
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!