Nous avons réussi à développer notre code sous Ubuntu 10.10. Le code utilise à la fois C++ compilé avec GCC 4.5 et fortran compilé avec la dernière version de ifort. Nous pouvons être tenus de prendre en charge une ancienne plate-forme Linux embarquée avec une version de GCC vieille de plusieurs années (en attente des spécifications du client). Malheureusement, leurs logiciels et matériels ont été conçus pour un usage militaire, ce qui permet de les mettre à niveau. Ma question est: sommes-nous susceptibles de faire face à des problèmes d'ABI en construisant notre application avec l'ancienne version de GCC et en la reliant à des bibliothèques compilées avec la dernière version d'ifort?Problèmes ABI C++/Fortran inter langage avec les anciennes versions de GCC
Répondre
Essayez-vous d'appeler le code Fortran à partir de C++, appelez le code C++ à partir de Fortran, ou les deux? Si vous appelez du code Fortran à partir de C++, je ne pense pas que vous aurez un problème, surtout si vous utilisez le même compilateur Fortran.
Si vous essayez d'accéder au code C++ à partir de Fortran, cela dépendra de la nature du code C++. Si les fonctions accessibles par Fortran utilisent la liaison C, alors cela devrait être correct, car le C ABI est standardisé. Si les fonctions utilisent le couplage C++, je m'attendrais à avoir quelques problèmes, car l'ABI C++ n'est pas standardisé et je suis sûr que GCC a apporté des modifications mineures (et peut-être majeures) à son ABI au cours des années.
Nous allons dans les deux sens avec cela (C++ à fortran et retour). Je pense qu'il y a de bonnes chances que nous devions mettre cela en place sur une architecture ARM, ce qui signifie que nous devrons probablement abandonner ifort et porter le code pour une chaîne d'outils purement gcc. Nous avons d'abord essayé d'obtenir le code avec gfortran, mais son préprocesseur n'était pas aussi performant que nous le faisons (nous en dépendons fortement en définissant des structures dans un langage générique, puis prétraitons ces structures pour générer des versions C++ et fortran d'interopérabilité).). – FuNkDaDdY
- 1. SoaSuiteComposites Supprimer les anciennes versions
- 2. Test avec les anciennes versions de .Net
- 3. Contrôles ActiveX avec les anciennes versions Delphi
- 4. Détecter les anciennes versions d'IE
- 5. Raison d'utiliser les anciennes versions de jQuery?
- 6. Supprimer note du changement GCC ABI
- 7. Capistrano ne supprime pas les anciennes versions
- 8. Désinstallez les anciennes versions de Ruby Gems
- 9. Les anciennes versions de Sonic Sub
- 10. Anciennes versions d'Iphone sdk
- 11. Anciennes versions de Castle Project
- 12. support Android Test sur les anciennes versions
- 13. Comment déboguer les anciennes versions du logiciel?
- 14. Comment puis-je obtenir les anciennes versions de IE?
- 15. Purge toutes les anciennes versions CMFEditions
- 16. Vues sont portrait dans les anciennes versions
- 17. Position absolue Problèmes dans les anciennes IE
- 18. TabWidget dans les anciennes versions android
- 19. Référencement de DLL construites avec des versions .Net plus anciennes
- 20. PHP json handler compatible avec les anciennes versions php
- 21. Plugin Eclipse Non compatible avec les anciennes versions
- 22. Utf8ToString et anciennes versions Delphi
- 23. Surmonter les problèmes inter-domaines
- 24. Retrait sur les anciennes versions de l'API pour permettre des fonctionnalités limitées sur les anciennes versions du système d'exploitation
- 25. GCC/X86, Problèmes avec les sauts relatifs
- 26. Anciennes versions de Qt dans les CmakeMakeFiles qui n'existent pas
- 27. Télécharger les anciennes versions de l'interface utilisateur jQuery
- 28. MPMoviePlayerViewController pour les anciennes versions de l'iPhone SDK
- 29. GitHub: recherche dans les anciennes versions de fichiers
- 30. Anciennes versions de l'émulateur Opera Mobile
f77 ou f90? ... – Anycorn