Maison >développement back-end >C++ >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 ?
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>
<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>
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
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++
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!