Bonjour,
Je découvre l'outil de "profilage" gprof.
Je tente de l'utiliser mais je n'y parviens pas lorsque je
dois "linker" avec une bibliothèque dynamique.

Mon problème sur un exemple trivial.

mon_header.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
void passe_du_temps1();
void passe_du_temps2();
void passe_du_temps3();
mon_header.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#include "mon_header.h"
void passe_du_temps1()
{
	std::cout<<"Dans passe du temps 1\n";
	int toto;
	for (size_t i=0; i<100000000; i++)  toto = i+2;
}
idem pour les deux autres

main.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
#include "my_header.h"
 
int main()
{
	passe_du_temps1();
	for (size_t i=0; i<5; i++)  passe_du_temps2();
	passe_du_temps3();
}
si je compile sans bibliothèque ca marche,
je vois les appels des methodes en sortie de
gprof:
g++ -c mon_header.cpp main.cpp -pg
g++ mon_header.o main.o -o main -pg

si je passe par une lib. dyn., ca marche plus,
je ne vois plus les appels des methodes:
g++ -c mon_header.cpp main.cpp -pg
g++ -shared mon_header.o -o ma_lib.so -pg
g++ my_lib.so main.o -o main -pg

Je ne comprends pas les quelques lignes de la doc ...
Comment fait-on ?
Merci