Maison > développement back-end > C++ > le corps du texte

Comment lier les binaires Fortran et C à l'aide de GCC : un guide pour résoudre les erreurs de référence non définies ?

Barbara Streisand
Libérer: 2024-10-27 03:49:29
original
760 Les gens l'ont consulté

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

Lier des binaires Fortran et C à l'aide de GCC

Lier des projets qui utilisent à la fois le code Fortran et C peut être difficile en raison des incompatibilités entre les codes associés bibliothèques. Lorsque vous tentez de compiler et de lier de tels projets à l'aide de g ou gfortran, des erreurs de référence non définies se produisent souvent.

Par exemple, considérez le code suivant :

<code class="fortran">subroutine print_hi() bind(C)
  implicit none
  write(*,*) "Hello from Fortran."
end subroutine print_hi</code>
Copier après la connexion
<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>
Copier après la connexion

Compiler ces fichiers avec g ou gfortran produit séparément des fichiers objets, mais les relier entre eux à l'aide de g entraîne des références non définies aux bibliothèques Fortran. De même, l'utilisation de gfortran entraîne des références non définies aux bibliothèques C.

Pour résoudre ce problème, il est nécessaire de créer un lien dans les bibliothèques appropriées pendant la phase de liaison. Pour g , cela peut être réalisé en ajoutant l'indicateur -lgfortran à la commande link :

g++ main.o print_hi.o -o main -lgfortran
Copier après la connexion

Cet indicateur créera un lien dans les bibliothèques Fortran nécessaires. Alternativement, gfortran peut être utilisé avec l'indicateur -lstdc pour établir un lien dans les bibliothèques C requises :

gfortran main.o print_hi.o -o main -lstdc++
Copier après la connexion

En spécifiant les indicateurs de liaison appropriés, les programmeurs peuvent lier avec succès des projets qui combinent du code Fortran et C, leur permettant de exploiter les capacités des deux langues dans leurs applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!