Appeler des fonctions non C++ dans Qt
Bonjour,
Je réalise actuellement un projet (traitement des données) réalise donc mes codes de calcul en Fortran.
Je voudrais savoir comment faire (et si c'est possible, mais ça je pense que oui :D) pour par exemple lier mon code C++ Qt avec mon code Fortran.
En effet, j'ai déja lier des codes de ces deux languages, mais là, je crée ma fenetre avec Qt creator.
Je créer ma fonction fortran "addition"
Code:
1 2 3 4 5 6
| subroutine addition(a,b)
implicit none
integer, intent(in) :: a,b
integer :: addition
a = a+b
end function addition |
Je la compile : gfortran -o addition.f90 pour obtenir un point .o.
Dans mon code C++ j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| extern "C"
{
void addition_(int*,int *);
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QWidget fenetre;
int m,n,o;
n=5;
o=11;
addition_(&n,&o);
fenetre.setFixedSize(200, 100);
QPushButton m_boutonDialogue("Ouvrir la boîte de dialogue", &fenetre);
m_boutonDialogue.move(40, 50);
QLCDNumber m_lcd(&fenetre);
m_lcd.setSegmentStyle(QLCDNumber::Flat);
m_lcd.move(50, 20);
m_lcd.display(n);
fenetre.show();
return app.exec();
} |
Je met le .o fortran dans le même dossier que mon main.cpp.
Je lance qmake-project, qmake et make all et.... erreur au make all :
undifined refence to : addition_
Habituellement, pour un code sans interface graphique cela marche, mais là....
J'ai fait la même démarche avec un code en C, la même erreur est obtenue...
Pour plus de précision, j'interface les deux langages exactement comme indiqué sur ce site :
http://www.cae.tntech.edu/help/progr...ixed_languages
D'avance merci.